C# 使用C将时间转换为计时器间隔#

C# 使用C将时间转换为计时器间隔#,c#,web-applications,timer,C#,Web Applications,Timer,我正在比较计时,并根据这个时间间隔给计时器赋值 我有两个约会时间 例如 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调用计时器??? 简言之,我想退房时间,如果不是凌晨4:00,那么设置适当的时间间隔,在凌晨4:00调用

我正在比较计时,并根据这个时间间隔给计时器赋值

我有两个约会时间

例如

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调用
计时器
???
简言之,我想退房时间,如果不是凌晨4:00,那么设置适当的时间间隔,在凌晨4:00调用计时器


并将时间转换为计时器间隔???

您不能调用计时器。计时器在间隔结束时唤醒。 您可以做的是计算从现在到凌晨4点的时间跨度,并将计时器间隔设置为该值。 或者更有效的架构方法是将计时器间隔设置为每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();

检查这是否适合您

什么是
dt1+dt2
偶数?将两个日期/时间值加在一起是没有意义的。我想设置interval来调用timer,这样做2次求和,dnt knw这是可能的还是不可能的……我怀疑您想要TimeSpan类,除了您的问题没有意义之外。@JeetenParmar:想想
DateTime
值是什么意思。这是一个日期和时间。如果加上2013年6月15日上午11:20和1976年6月19日上午8:48会发生什么。您希望得到什么结果?@JeetenParmar:您编辑的问题仍然试图添加两个日期时间。这仍然毫无意义(更不用说不可能了)。我正在考虑在时间不是凌晨4点的时候正确设置计时器间隔。一旦间隔结束并调用ElapsedEventHandler,将计时器设置为24小时。那怎么办???这不是一个完美的答案,但我从你的答案中得到了一些帮助。所以把它标记为答案。
var dt = ... // next 4:00 AM from now
var timer = new Timer(callback, null, dt - DateTime.Now, TimeSpan.FromHours(24));