重复规则定义(RFC2445)问题

Cor*_*ond 6 recurrence calendar rfc2445 rule

我正在使用Google的RFC2445实施(http://code.google.com/p/google-rfc-2445/)来实现重复规则.如果我定义从1月30日开始的每月重复,则将完全跳过少于30天(即2月)的月份.所以Google API将于1月30日,3月30日,4月30日等回归.不太好.我希望它能回归:1月30日,2月28日,3月30日,4月30日.

同样,如果我选择了1月31日的开始日期,那么将跳过少于31天的任何月份.

根据RFC2445规范,这可能是正确的,也可能是错误.你怎么看?

我的主要问题是,是否有任何方法可以定义一条规则,即"每月30日复发;或者如果30日不存在则在该月的最后一天".我不相信有.有什么建议?

提前致谢.

此致,科马克

Cor*_*ond 17

答案是:FREQ = MONTHLY; BYMONTHDAY = 28,29,30; BYSETPOS = -1,转换为"每月30日复发;或者如果30日不存在则在月份的最后一天".

  • 这是因为BYSETPOS语法.更精确的翻译将"从给定月份存在的SET 28,29,30中的最后一个(-1)POSITION重复出现." 因此,如果第30个不存在,则该集合中的最后一个有效项目为29.如果不存在,那么它是28个.很好找,@ Cormac Redmond! (7认同)