我正在实施一个包含重复活动的小日历应用。 使用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王国的事吗?