c# - 使用 RFC 5545 重复规则安排每月事件 "Every Nth Weekday"

标签 c# time icalendar rfc5545

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

使用 Google 日历每月安排有两个选项,或者每个月的第 N 天,即:每 1 个月的每个月的第 10 天,这显然会发生,而不管星期几。

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

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

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

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

我正在使用 RFC 5545 recurrence rule .

最佳答案

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

Each BYDAY value can also be preceded by a positive (+n) or negative (-n) integer. If present, this indicates the nth occurrence of a specific day within the MONTHLY or YEARLY "RRULE".

后面RFC5545给出了例子

Monthly on the first Friday for 10 occurrences:

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

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

RRULE:FREQ=MONTHLY;BYDAY=2SU

关于c# - 使用 RFC 5545 重复规则安排每月事件 "Every Nth Weekday",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050521/

相关文章:

php - 如何扩展正则表达式以查找多个匹配项?

outlook - ICal 导入在打开 ics 文件时创建新日历

java - 日历。反复发生的事件。如何检查开始日期是否与模式匹配?

c# - 返回 ajax 请求错误的最佳方式是什么?

c# - ASP.NET MVC4 - 以不止一种方法添加到 ViewBag?

.net - .Net 如何获得 UTC?

java - 等待执行功能而不卡住进程

c# - 在 C# 中重现 Ruby OpenSSL private_encrypt 输出

c# - 针对两个版本的 Web 应用程序的 Visual Studio 解决方案

java - 如何将新的持续时间与存储的持续时间进行比较并替换为两者中较短的一个?