使用RFC 5545重复规则安排每月事件“每N个工作日”

时间:2014-09-26 01:06:21

标签: c# time icalendar rfc5545

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

每月使用Google日历安排两个选项,或者每隔N个月安排一次,即:每1个月每10天,无论工作日如何,这都会明显发生。

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

另一种选择是每隔工作日重复一次活动,即:" 每隔一个月的第二个星期天,这是我在编写规则时遇到的问题对

我的规则对于第二条规则应该是什么?我已经尝试了FREQ=MONTHLY;BYDAY=SU,但我不确定如何使用这些参数指定每月的第2个星期日才能执行此操作。

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

我正在使用RFC 5545 recurrence rule

1 个答案:

答案 0 :(得分:4)

你快到了。你需要的是设置当天的索引,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