【发布时间】:2017-02-15 20:55:12
【问题描述】:
我有以下任务的数据结构:
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。当您意识到 Start 可以是 Start: 17:03:00 等运行时间现在发生变化时,困难就来了 17:08、17:13 等。
【问题讨论】: