我们的团队一直在研究一种表示reucurrences的正确方法,我们偶然发现了RRule https://www.rfc-editor.org/rfc/rfc2445 (在iCalendar rfc中指定)。
我正在尝试编写一条规则,它允许我生成距离每个月的第一天差29天的日期。所以它看起来像这样: jan29,mar1,mar29,apr29。
这里正确的RRule表达式是什么?或者这有可能吗?
发布于 2014-02-05 14:52:38
你应该知道RFC5545超级种子RFC2445。
要绕过闰年的问题,您应该使用RRULE和BYYEARDAY,并使用负偏移量。
因此,首先指定一年的第29天,然后指定第60天(31 (对于jan) +29(对于feb 1日之后)),然后从年份的后面开始计算闰年:
BYYEARDAY列表中的第31个偏移量是:-1从中编写RRULE属性,如下所示:
RRULE:FREQ=YEARLY;BYYEARDAY=29,60,-278,...,-33,-3
发布于 2014-02-12 14:29:39
一种选择是用INTERVAL=29制作你的RRULE。类似于:
RRULE:FREQ=DAILY;INTERVAL=29
并不是所有的iCalendar客户端都支持无限重复集,所以您还应该包含一个UNTIL或COUNT组件来满足您的需求。
发布于 2014-02-05 14:01:18
否,RRULE将丢弃无效的日期。所以即使你可以这样做:
RRULE:FREQ=MONTHLY;BYMONTHDAY=29它只会跳过每年的二月(除了闰年)。
可以为1个事件指定多个RRULE,但很少有日历软件真正支持这一点。
https://stackoverflow.com/questions/21569485
复制相似问题