日期计算:计算在给定范围内与复杂条件匹配的天数,无循环

时间:2018-06-03 15:56:15

标签: algorithm date

我正在实施一个包含重复活动的小日历应用。 使用crontab语法指定事件。

表达式可能非常复杂:

  00 11 28-31 */3 MON#1,MON#2,MONL */2
  ^  ^    ^    ^       ^            ^
  |  |    |    |       |            |
  |  |    |    |       |            * - every even year
  |  |    |    |       * - on first, second and last Monday of month
  |  |    |    * - every third month
  |  |    * - since 28th till 31st days of month
  |  * - at 11AM
  * - first minute of the hour

在准备报告时,我需要计算触发重复事件的次数。现在我正在使用简单的方法:只是遍历范围内的所有日期并检查条件是否匹配,但这似乎超级低效。

所以我的问题是:我可以以某种方式计算在给定条件下与循环范围匹配的天数吗?

感谢。

P.S。我一直在谷歌上搜索,并没有找到至少一个没有循环的实现。这是NP王国的事吗?

0 个答案:

没有答案