c#确实1.09:00:00的时间跨度意味着明天上午9点?

Beg*_*ner 1 c# datetime timespan timer

我有一个例程,假设每天上午9点运行....

protected override void OnStart(string[] args)
{
   log.Info("Info - Service Start");
   string timeToRunStr = "09:00";
   var timeStrArray = timeToRunStr.Split(';');
   foreach (var strTime in timeStrArray)
   {
        timeToRun.Add(TimeSpan.Parse(strTime));
   }
    ResetTimer();
}

void ResetTimer()
{
   log.Info("Info - Reset Timer");
   try
   {
       TimeSpan currentTime = DateTime.Now.TimeOfDay;
       TimeSpan nextRunTime = timeToRun[0];
       foreach (TimeSpan runTime in timeToRun)
       {
           if (currentTime < runTime)
           {
               nextRunTime = runTime;
               // log.Info("Info - in loop");
               _timer = new Timer((nextRunTime - currentTime).TotalSeconds * 1000);
               break;
           }
           else {
             TimeSpan test = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 16, 51, 0).AddDays(1).Subtract(DateTime.Now);
             nextRunTime = test;
              _timer = new Timer((nextRunTime).TotalSeconds * 1000);
            }
        }               
        log.Info("Info - Timer : " + (nextRunTime - currentTime).TotalSeconds * 1000);
        log.Info("Info - nextRuntime : " + nextRunTime);
        log.Info("Info - currentTime : " + currentTime);
        _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
        _timer.Start();
    }
    catch (Exception ex)
    {
        log.Error("This is my timer error - ", ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

它运行在上午9点然后下一个运行时间它说1.09:00:00这意味着明天上午9点?

And*_*ila 7

1.09:00:00表示1天9小时的时间跨度