⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timespantiming.cs

📁 基于LINQ和.NET 3.5 的数据库源码
💻 CS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -