安排每月的活动“;每N个工作日“;使用RFC 5545递归规则

本文关键字:RFC 使用 5545 递归 规则 工作日 活动 | 更新日期: 2023-09-27 18:24:39

我正试图使用RFC5545递归规则在C#中复制谷歌日历中的一些调度功能。

谷歌日历有两种按月安排的选项,可以是每个月的第N天,即:每1个月的第10天,这显然会在不考虑星期的情况下发生。

我的递归规则是:FREQ=MONTHLY;BYMONTHDAY=10

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

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

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

我使用的是RFC 5545递归规则。

安排每月的活动“;每N个工作日“;使用RFC 5545递归规则

您已接近目标。你需要的是设置当天的索引,RFC5545说:

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

RFC5545稍后给出了的示例

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

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

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

RRULE:FREQ=MONTHLY;BYDAY=2SU