timespantiming.cs
来自「基于LINQ和.NET 3.5 的数据库源码」· CS 代码 · 共 44 行
CS
44 行
using System;
namespace Lephone.Util.TimingTask.Timings
{
public class TimeSpanTiming : ITiming
{
protected int SpanSeconds;
protected DateTime LastActiveTime;
protected NowProvider NowTimeProvider;
public TimeSpanTiming(TimeSpan Span) : this(Span, NowProvider.Instance) { }
public TimeSpanTiming(TimeSpan Span, NowProvider NowTimeProvider)
{
this.SpanSeconds = (int)Span.TotalSeconds;
this.NowTimeProvider = NowTimeProvider;
LastActiveTime = DateTime.MinValue;
}
public virtual bool TimesUp()
{
int ts = (int)TimeSpanFromNowOn().TotalSeconds;
return ( ts <= 0 );
}
public virtual TimeSpan TimeSpanFromNowOn()
{
DateTime dt = GetNextActiveTime();
TimeSpan ts = dt.Subtract(NowTimeProvider.Now);
return ts;
}
public virtual void Reset()
{
LastActiveTime = NowTimeProvider.Now;
}
protected DateTime GetNextActiveTime()
{
return LastActiveTime.AddSeconds(SpanSeconds);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?