【问题标题】:iCalendar RRULE/RECUR for Thanksgiving weekend?感恩节周末的 iCalendar RRULE/RECUR?
【发布时间】:2015-10-13 05:17:32
【问题描述】:

是否有一种“简单”的方法可以为“感恩节周末”创建年度活动,即从 11 月的第 4 个星期四开始的活动(以星期日为第一个工作日),并在下一个星期日结束?

据我所知,诸如 RRULE 和 RECUR 之类的东西可以让您创建持续时间为零的重复事件(即时间点),但不能创建持续一段时间的重复事件。

我错过了什么?

【问题讨论】:

    标签: icalendar vcalendar


    【解决方案1】:
    RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY:4TH;WKST=SU
    

    您绝对不限于 0 持续时间的事件。您可以简单地指定 DTSTART 和 DTEND(或 DURATION)来获得完整的周末。

    【讨论】:

    • 可以将 DTSTART 和 DTEND 定义为 RRULE 本身吗?如果没有,我如何指定一个月的活动?一个月的长度不是固定的。我应该提到感恩节的日期很容易,让我难过的是持续时间。
    • 指定一个为期一个月的活动不是您最初问题的一部分,但是是有可能的。 RRULE 适用于DTSTARTDTEND,您不能分别为每个指定它,但这也没有任何意义。
    【解决方案2】:

    要详细说明 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”日历组件,指定非包含端 事件。

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 2022-07-30
      • 2016-11-12
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多