我正在寻找iCalendar规则匹配算法,该算法允许我验证用户输入的特定日期是否属于由iCal定期事件规则确定的日期。
例如:
Nov 1, 2014
(假设我可以解析日期)FREQ=MONTHLY;BYMONTHDAY=1
(这基本上意味着此事件发生在每个月的第一天)显然,2014年11月1日确实属于事件的日期。我怎么能以编程方式解决这个问题呢?在给定开始日期的情况下,如何获得由重复规则确定的日期列表?
有没有这样做的例子或库?
我主要是在寻找JS和PHP库/片段,但任何类型的伪代码都应该没问题。
澄清:iCalendar是指RFC 5545互联网日历和计划核心对象规范
答案 0 :(得分:1)
对于PHP:phpicalendar(here),问题是该算法不容易与其余代码隔离 对于JS有一些尝试,但我从未检查他们是否真的与rfc5545足够兼容。
这一切都取决于您需要多少合规性:例如,添加时区支持将使您能够解决有一天失去国家的罕见情况(例如2011年12月29日至12月31日跳过的萨摩亚岛)。