/**
* TimeSpan is not synchronized.
*
* If multiple threads access a TimeSpan concurrently, it must be synchronized externally.
*
* If multiple threads access a TimeSpan concurrently, ConcurrentTimeSpan are usually recommended.
*
* @see ConcurrentTimeSpan
*
*/
public class TimeSpan {
private long start;
public TimeSpan() {
this(System.currentTimeMillis());
}
public TimeSpan(long start) {
this.start = start;
}
public long getSpanAndResetStart() {
return getSpanAndResetStart(System.currentTimeMillis());
}
public long getSpanAndResetStart(long current) {
try {
return current - start;
} finally {
start = current;
}
}
public long getSpan() {
return getSpan(System.currentTimeMillis());
}
public long getSpan(long current) {
return current - start;
}
public long getStart() {
return start;
}
public void setStart() {
setStart(System.currentTimeMillis());
}
public void setStart(long start) {
this.start = start;
}
}
import java.util.concurrent.atomic.AtomicLong;
/**
* ConcurrentTimeSpan are synchronized.
*
* @see TimeSpan
*
*/
public class ConcurrentTimeSpan {
private final AtomicLong start;
public ConcurrentTimeSpan() {
this(System.currentTimeMillis());
}
public ConcurrentTimeSpan(long start) {
this.start = new AtomicLong(start);
}
public long getSpanAndResetStart() {
return getSpanAndResetStart(System.currentTimeMillis());
}
public long getSpanAndResetStart(long current) {
return current - start.getAndSet(current);
}
public long getSpan() {
return getSpan(System.currentTimeMillis());
}
public long getSpan(long current) {
return current - start.get();
}
public long getStart() {
return start.get();
}
public void setStart() {
setStart(System.currentTimeMillis());
}
public void setStart(long start) {
this.start.set(start);
}
}
分享到:
相关推荐
### 间隔时间 TimeSpan 在C#编程语言中,`TimeSpan` 类是一个非常重要的系统类,主要用于表示两个日期或时间之间的间隔。通过 `TimeSpan` 类,开发者可以轻松地进行时间间隔的计算、比较和操作。 #### TimeSpan ...
在C#编程中,`TimeSpan`结构是一个用于表示时间间隔的重要工具,它可以用来计算两个日期或时间点之间的时间差。`TimeSpan`类提供了丰富的属性和方法,使得开发者能够方便地进行各种时间操作。 首先,`TimeSpan`结构...
本文实例讲述了ASP.NET中TimeSpan的用法,分享给大家供大家参考。具体如下: ASP.NET 中,两个时间相减,得到一个 TimeSpan 实例,TimeSpan 有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes...
在C#编程语言中,`TimeSpan`是一个非常重要的结构,用于表示两个日期或时间之间的差值,即一个时间间隔。这个结构提供了多种方法和属性,使得开发者可以方便地处理和展示时间间隔。 首先,`TimeSpan`有四个主要的...
在C#编程中,`TimeSpan` 是一个非常重要的结构,用于表示两个日期或时间之间的差值。它可以用来处理时间间隔,比如计算时间差、执行定时任务等。本篇文章将详细探讨如何使用 `TimeSpan` 进行时间计算,并通过一个...
《TimeSpan使用方法详解》 TimeSpan类在.NET框架中是一个非常重要的类,它用于表示两个日期或时间之间的时间间隔,通常用来计算两个DateTime对象之间的差异。本文将深入探讨TimeSpan的使用方法,帮助你更好地理解和...
在C#编程中,`TimeSpan`对象是一个用于表示时间间隔或持续时间的类,它可以用来计算两个日期或时间之间的差值。`TimeSpan`结构提供了丰富的属性和方法,允许我们精确地处理时间间隔。在本篇内容中,我们将深入探讨...
本篇文章将详细讲解如何利用TimeSpan结构来实现倒计时功能,这对于C#开发者来说是一个非常实用的技能。 首先,TimeSpan是.NET框架中的一个类,用于表示两个日期或时间之间的差值,它包含了天数、小时数、分钟数、秒...
//输出:1个月1天10小时12分钟15秒,234毫秒未输出,因为baseUnit参数默认是:'s'Timespan.lang('en'); console.log(ts.humanize()); //输出:1 month,1 day,10 hours,12 minutes,15 seconds 测试用例 ...
TimeSpan对象表示一个时间差,比如今天的10点10分,和明天的12点12分,就差1天2小时2分。这个“1天2小时2分”就是一个TimeSpan。这个东西有什么用呢?小编之前在做一个小东西的时候,需要评估一下两个不同的方法看...
该库将.NET TimeSpan结构扩展为可比较,可序列化和可转换,并支持本地化的字符串格式和解析。 共有三类公共注意事项: TimeSpan2是现有TimeSpan结构的包装,它增加了序列化,可比较性和可转换性。 它可以在使用...
标题“为WPF Masked TextBox创建double或TimeSpan Value TextBox的行为”涉及到了一个解决方案,该方案允许开发者创建具有特定格式约束的文本框,用于输入double类型的数值或TimeSpan值。这种行为(Behavior)是一种...
C#定时关机小工具源码 项目描述 ... AutoShutTimeSpan: a global variable of type TimeSpan that holds the difference between AutoShutDatTime and System.DateTime.Now. 欢迎感兴趣的用户下载学习。
本文将深入探讨如何使用C#中的`TimeSpan`结构来计算两个时间点之间的差异,这对于理解和操作时间数据至关重要。 ### C#中的`TimeSpan`结构 `TimeSpan`结构在C#中用于表示时间间隔或持续时间,它可以精确到毫秒级别...
- 示例:`TimeSpan ts1 = new TimeSpan(1, 2, 3); TimeSpan ts2 = new TimeSpan(4, 5, 6); TimeSpan ts3 = ts1.Add(ts2);` 这里 `ts3` 将包含 `TimeSpan` 的值为 `05:07:09`(即 `5` 小时 `7` 分钟 `9` 秒)。 - **...