繁体   English   中英

Android日历事件年度重复重复规则

[英]android calendar event yearly repeating recurrence rule

我正在尝试以编程方式在日历中添加事件。 我希望该活动每年重复一次,例如在2月的每个第一个星期一。 我使用的规则是这样的:

FREQ=YEARLY;BYDAY=1MO;BYMONTH=2;INTERVAL=1;COUNT=11;

问题是:如果我以1月开始的日期创建事件并将其设置为每年1月重复一次,那么它可以正常工作。 但是,如果我创建的活动的开始日期是2月以外的其他月份,并按照相同的规则将其设置为重复,则该活动不会在星期一重复,而是在另一天重复。 该日期有所不同,具体取决于事件的开始日期是哪个月。 似乎很重要,因为在the年,这一天被更改了一天。

更新:

我注意到,如果如上所述创建事件,则会发生以下情况:如果例如在2月创建事件并设置为在3月重复,则该规则将从事件的DTSTART所在的月蛾中获取天数。设置(2月)。 因此,如果我在2月创建一个活动并将其设置为在3月的最后一天重复,那么它将在March年的3月28日或29日重复(而不是预期的31日)。

另一个示例:我在2013年1月使用DTSTART创建了活动,并将其设置为在2月的每个第一个星期一重复一次。 它在2013年2月的日期(对应于2013年1月的第一个星期一)创建事件,在本例中为2月7日(因为1月7日是2013年1月的第一个星期一)。 明年,该活动将在2月的第一个星期四重复。

添加事件时, DTSTART必须与该事件的首次发生在同一个月,以避免产生不必要的副作用

您能否根据自己的期望和期望给出更多详细信息:

BEGIN:VCALENDAR
PRODID:byhand
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20130205T090000Z
UID:SO_14702482_2b
SUMMARY:SO_14702482_2b
DTSTART:20130104T090000Z
RRULE:FREQ=YEARLY;BYDAY=1MO;BYMONTH=2;INTERVAL=1;COUNT=11;
END:VEVENT
END:VCALENDAR

将会发生(在2个不同的平台上测试)@ 09h00Z on:20130104,20130204,20140203,20150202,20160201,20170206,...

BEGIN:VCALENDAR
PRODID:byhand
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20130205T090000Z
UID:SO_14702482_1b
SUMMARY:SO_14702482_1b
DTSTART:20130204T090000Z
RRULE:FREQ=YEARLY;BYDAY=1MO;BYMONTH=2;INTERVAL=1;COUNT=11;
END:VEVENT
END:VCALENDAR

将会在以下位置发生(此处也经过测试)@ 09h00Z:20130204、20140203、20150202、20160201、20170206,...

主要区别在于,按照RFC5545的规定,DTSTART是其中一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM