我正在比较时间并根据为计时器分配间隔。
我有2个日期时间,
对于即便。
Datetime dt1 = 04:00:00;
Datetime dt2 = 15:20:28;
Datetime dt3 = 24:00:00;
现在,我想在04:00:00设置间隔来调用计时器。想想,现在,时间是15:20:28,所以要在04:00:00调用计时器,我需要做一些操作。
那么,我应该怎么做才能在04:00:00拨打Timer
???
简而言之,我想查看时间,如果不是04:00 AM,那么设置适当的时间间隔在凌晨04:00呼叫计时器。
并将时间转换为计时器间隔???
答案 0 :(得分:0)
你不能叫Timer。定时器在间隔结束时唤醒。 您可以做的是从现在到4 AM计算TimeSpan,并将Timer interval设置为该值。 或者更有效的架构方法是将定时器间隔设置为每n秒,并在定时器唤醒时检查它是否为4。
以下是第一个选项的示例代码:
TimeSpan ts = new TimeSpan(new DateTime(2013,06,15,04,00,00).Ticks- DateTime.Now.Ticks);
long ticks = ts.Ticks;
long divide= (long)Math.Pow(10, 7);
long span = ticks / divide;
timer.Interval = (int)span*1000;
timer.Tick += timer_Tick;
timer.Start();
答案 1 :(得分:0)
var dt = ... // next 4:00 AM from now
var timer = new Timer(callback, null, dt - DateTime.Now, TimeSpan.FromHours(24));
检查这是否适合您