如何使用 RRULE 部分来实现 "twice a month"?
How can one use RRULE parts to implement "twice a month"?
我正在将以下一组重复规则映射到 RFC5545 RRULE(以创建 Google 日历事件):
- 从不
- 每天
- 每周
- 每隔一周
- 每月两次
- 每 4 周
- 每月
- 每隔一个月
- 每 3 个月
- 每 4 个月
- 每年两次
- 每年
- 隔年
其中一些比其他的更容易(考虑 Every4Weeks 与 TwiceAMonth)并且已经实施。
假设这可以用 RRULE 表示并且我的开始日期为 2017/08/24
(如果开始日期相关)我的 RRULE 需要满足什么条件,例如 TwiceAMonth
?
奖金:如果有人为 "every other week"、"twice a year" 等提出 RRULE。我将永远感激不已。
要编写 RRULE,需要非常具体。 'Twice a week/month/year' - 如果你对人说那句话,他们能准确算出 2019 年是哪几天吗?
每个序列都需要一个 DTSTART,并且对于依赖于该日期或由该日期确定的循环序列肯定需要它。 EG:每隔一周需要一天开始,并且可以每 14 天或每 2 周重复一次。每月两次:哪几天?星期几相关吗?日期是由月初还是月底决定的?
您可以随意组合 FREQ、INTERVAL 和所有“BY”的 BYDAY、BYMONTHDAY、BYSETPOS 等。一些 'expand' 天数和一些 'limit' 天数。
规范本身有一些示例 https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html。以下是更多示例:
每月1号和15号两次
RRULE:FREQ=MONTHLY;BYMONTHDAY=1,15
每月两次,分别在第一个和第三个星期四
DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=MONTHLY;BYDAY=1TH,3TH
从 2018 年 8 月 24 日开始每隔一周
DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=WEEKLY;INTERVAL=2
每年 2 月和 8 月的第二天倒数两次
RRULE:FREQ=YEARLY;BYMONTHDAY=-2;BYMONTH=2,8
每年两次在最后一天和第 50 天
RRULE:FREQ=YEARLY;BYSETPOS=-1,50
我正在将以下一组重复规则映射到 RFC5545 RRULE(以创建 Google 日历事件):
- 从不
- 每天
- 每周
- 每隔一周
- 每月两次
- 每 4 周
- 每月
- 每隔一个月
- 每 3 个月
- 每 4 个月
- 每年两次
- 每年
- 隔年
其中一些比其他的更容易(考虑 Every4Weeks 与 TwiceAMonth)并且已经实施。
假设这可以用 RRULE 表示并且我的开始日期为 2017/08/24
(如果开始日期相关)我的 RRULE 需要满足什么条件,例如 TwiceAMonth
?
奖金:如果有人为 "every other week"、"twice a year" 等提出 RRULE。我将永远感激不已。
要编写 RRULE,需要非常具体。 'Twice a week/month/year' - 如果你对人说那句话,他们能准确算出 2019 年是哪几天吗?
每个序列都需要一个 DTSTART,并且对于依赖于该日期或由该日期确定的循环序列肯定需要它。 EG:每隔一周需要一天开始,并且可以每 14 天或每 2 周重复一次。每月两次:哪几天?星期几相关吗?日期是由月初还是月底决定的?
您可以随意组合 FREQ、INTERVAL 和所有“BY”的 BYDAY、BYMONTHDAY、BYSETPOS 等。一些 'expand' 天数和一些 'limit' 天数。
规范本身有一些示例 https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html。以下是更多示例:
每月1号和15号两次
RRULE:FREQ=MONTHLY;BYMONTHDAY=1,15
每月两次,分别在第一个和第三个星期四
DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=MONTHLY;BYDAY=1TH,3TH
从 2018 年 8 月 24 日开始每隔一周
DTSTART;TZID=America/New_York:20170824T000000
RRULE:FREQ=WEEKLY;INTERVAL=2
每年 2 月和 8 月的第二天倒数两次
RRULE:FREQ=YEARLY;BYMONTHDAY=-2;BYMONTH=2,8
每年两次在最后一天和第 50 天
RRULE:FREQ=YEARLY;BYSETPOS=-1,50