【发布时间】:2015-10-13 05:17:32
【问题描述】:
是否有一种“简单”的方法可以为“感恩节周末”创建年度活动,即从 11 月的第 4 个星期四开始的活动(以星期日为第一个工作日),并在下一个星期日结束?
据我所知,诸如 RRULE 和 RECUR 之类的东西可以让您创建持续时间为零的重复事件(即时间点),但不能创建持续一段时间的重复事件。
我错过了什么?
【问题讨论】:
是否有一种“简单”的方法可以为“感恩节周末”创建年度活动,即从 11 月的第 4 个星期四开始的活动(以星期日为第一个工作日),并在下一个星期日结束?
据我所知,诸如 RRULE 和 RECUR 之类的东西可以让您创建持续时间为零的重复事件(即时间点),但不能创建持续一段时间的重复事件。
我错过了什么?
【问题讨论】:
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY:4TH;WKST=SU
您绝对不限于 0 持续时间的事件。您可以简单地指定 DTSTART 和 DTEND(或 DURATION)来获得完整的周末。
【讨论】:
DTSTART 和DTEND,您不能分别为每个指定它,但这也没有任何意义。
要详细说明 Evert 的答案,要指定 4 天的事件,您只需指定 DTSTART 和 DTEND,如下所示:
DTSTART;VALUE=DATE:20151126 DTEND;VALUE=DATE:20151130 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=4TH;WKST=SU
理由来自 RFC5545 的以下部分:
RFC5545 3.6.1“VEVENT”的“DTSTART”属性指定包含 事件的开始。对于重复事件,它还指定 重复集中的第一个实例。 “DTEND”属性 对于“VEVENT”日历组件,指定非包含端 事件。
【讨论】: