6

我正在尝试使用 RFC5545 重复规则在 C# 中复制 Google 日历中的一些计划功能。

使用 Google 日历每月安排两个选项,可以是每月第 N 天,即:每个月的第 10 天,每 1 个月,无论工作日如何,这显然都会发生。

我的重复规则是:FREQ=MONTHLY;BYMONTHDAY=10

另一种选择是在每个第 N 个工作日重复该事件,即:“每个月的第二个星期日,这是我在编写规则时遇到问题的那个。

对于第二条规则,我的规则应该是什么?我试过FREQ=MONTHLY;BYDAY=SU了,但我不确定如何/使用哪些参数来指定仅在每月的第二个星期日执行此操作。

我正在使用DDay iCal C# 库来生成我的重复规则,但我很高兴看到规则字符串应该是什么样子才能实现所需的行为。

我正在使用RFC 5545 重复规则

4

1 回答 1

4

你快到了。您需要设置当天的索引,RFC5545 说:

每个 BYDAY 值前面也可以有一个正 (+n) 或负 (-n) 整数。如果存在,这表示在 MONTHLY 或 YEARLY "RRULE" 中特定日期的第 n 次出现。

RFC5545 稍后给出了一个例子

每月第一个星期五发生 10 次:

   DTSTART;TZID=America/New_York:19970905T090000
   RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR

所以对你来说,规则必须是:

RRULE:FREQ=MONTHLY;BYDAY=2SU

于 2014-09-26T06:03:10.170 回答