0
我有任务的以下数据结构:计算下一运行时间任务
Task{
Start: 17:00:00
End: 20:00:00
Interval: 5
Days: [1, 2, 3, 6, 7]
}
所以这有点像一个时间表设置一些任务。我有一个windows服务,每5秒钟进行一次滴答,如果是时候运行任务,它会进行一些计算。这很容易检查。例如,我正在检查当前时间的当天是否在Days
阵列中,如果当前时间在Start
和End
之间等。因此,此任务将在17:05:04
,17:10:01
等(接近5秒)执行。所以它现在的时间接近17:00 + N*5 seconds
它执行一些代码。这是正常工作。
我现在正努力研究计算未来这项任务的执行时间。例如,如果现在是Monday 16:58:30
,则下次它将被执行时是Monday 17:05
。如果是Friday 18:00
它将在Saturday 17:05
执行。如果是Monday 18:33
,则下一次运行是Monday 18:35
。困难来当你意识到,开始可以是这样的开始:17:03:00
等运行时间现在这支17:08
,17:13
等