Icalendar 每29个月一次
我们的团队一直在研究一种正确的方法来代表reucurrences,我们偶然发现了RRule(在iCalendar rfc中指定) 我正在尝试编写一个rrule,它允许我生成距离每月第一天29天的日期。看起来是这样的:1月29日,3月1日,3月29日,4月29日Icalendar 每29个月一次,icalendar,recurrence,rfc2445,rrule,Icalendar,Recurrence,Rfc2445,Rrule,我们的团队一直在研究一种正确的方法来代表reucurrences,我们偶然发现了RRule(在iCalendar rfc中指定) 我正在尝试编写一个rrule,它允许我生成距离每月第一天29天的日期。看起来是这样的:1月29日,3月1日,3月29日,4月29日 这里正确的RRule表达式是什么?或者可能吗?不,RRULE会丢弃无效日期。所以即使你能做到: RRULE:FREQ=MONTHLY;BYMONTHDAY=29 每年二月(闰年除外)都会跳过 可以为一个事件指定多个RRULE,但实际上很
这里正确的RRule表达式是什么?或者可能吗?不,RRULE会丢弃无效日期。所以即使你能做到:
RRULE:FREQ=MONTHLY;BYMONTHDAY=29
每年二月(闰年除外)都会跳过
可以为一个事件指定多个RRULE,但实际上很少有日历软件支持此功能。您应该知道superseeds RFC2445
要绕过闰年问题,应使用RRULE
和BYYEARDAY
并使用负偏移量
因此,首先指定一年中的第29天,然后指定第60天(31(1月)+29(2月1日之后)),然后从年后开始计算闰年:
- 知道
列表中的12月31日偏移量为:-1BYYEARDAY
- 那么12月29日的偏移量是:-3
- 同样,11月29日的偏移量为:-33
RRULE
属性,如下所示:
RRULE:FREQ=每年;BYYEARDAY=29,60,-278,…,-33,-3
一种选择是用
间隔=29
制作RRULE
。比如:
RRULE:FREQ=每日;间隔=29
并非所有iCalendar客户端都支持无限重复集,因此您应该包括一个
直到或计数组件,以满足您的需要。感谢您的快速响应。。。。看起来这真的很复杂。我认为规则类似于“从每个月的第一天算起的X天数”,适用于任何一个月的某一天