【发布时间】:2011-12-28 14:43:35
【问题描述】:
我有类似 crontab 的调度程序。时间定义“MM HH WD MD M”:
MM- 分钟
HH- 小时
WD- 一周中的天数
MD - 月中的天数
M - 月数
WD、MD、M 允许多个条目,每个参数都可以为空,例如:
^ ^ 0, 1 ^ ^ means exucution every minute, every hour, at sunday and mondey, every day<br>
35 15 ^ ^ ^ execution every day at 15.35<br>
如果您知道上次执行日期,问题是如何计算下一次运行时间。我知道如何使用循环来做到这一点(只需添加 1 分钟,直到它符合条件),但必须有更好的方法。
【问题讨论】:
-
我希望你没有低估这份工作。如果您真的想与(POSIX)cron 兼容,您将have to cater for a lot more than that(我知道,我已经在 C++ 中实现过一次)
-
@kol:我猜他需要
Noda Timeedit 很多时间.... :) -
如果先是
MM HH,那么15 35不会抛出异常吗? -
if you know last execution date- 呃……最后一次执行与 crontab 规范无关(它们是绝对时间参考)