是否可以在 iCalendar RFC5545 重复规则中使用 OR 表达式?
Is it possible to have an OR expression in a iCalendar RFC5545 recurrence rule?
我目前正在使用 iCalendar 规范 (RFC 5545) 来处理重复发生的事件。
直到昨天,他们的重复规则满足了我的所有需求,但现在我很难实施以下规则:
Every month on the first Monday OR Wednesday of the month.
例如:
- 2021-05-01 是星期六:活动将在 2021-05-03 星期一举行。
- 2021-06-01 是星期二:活动将在 2021-06-02 星期三举行。
- 2021-07-01 是星期四:活动将在 2021-07-05 星期一举行。
- 2021-08-01 是星期日:活动将在 2021-08-02 星期一举行。
有没有办法定义这种“条件”规则?
如果我对要求的理解正确的话,它并不是完全有条件的。只有第一个星期一和第一个星期三的第一个是必需的。 BYSETPOS就是针对这个的。
在这个例子中,它被用来计算最后一个工作日https://icalevents.com/2555-paydays-last-working-days-and-why-bysetpos-is-useful/
以你为例
RRULE:FREQ=MONTHLY;BYDAY=1MO,1WE;BYSETPOS=1
应该可以解决问题,
基本上 RRULE 将展开所有第一个星期一和星期三,然后 'contract' 即取每一对的第一个日期。
规范的第 43 页 https://www.ietf.org/rfc/rfc5545.txt 显示了 'expansions' 和 'contractions' 的优先级。
我目前正在使用 iCalendar 规范 (RFC 5545) 来处理重复发生的事件。
直到昨天,他们的重复规则满足了我的所有需求,但现在我很难实施以下规则:
Every month on the first Monday OR Wednesday of the month.
例如:
- 2021-05-01 是星期六:活动将在 2021-05-03 星期一举行。
- 2021-06-01 是星期二:活动将在 2021-06-02 星期三举行。
- 2021-07-01 是星期四:活动将在 2021-07-05 星期一举行。
- 2021-08-01 是星期日:活动将在 2021-08-02 星期一举行。
有没有办法定义这种“条件”规则?
如果我对要求的理解正确的话,它并不是完全有条件的。只有第一个星期一和第一个星期三的第一个是必需的。 BYSETPOS就是针对这个的。
在这个例子中,它被用来计算最后一个工作日https://icalevents.com/2555-paydays-last-working-days-and-why-bysetpos-is-useful/
以你为例
RRULE:FREQ=MONTHLY;BYDAY=1MO,1WE;BYSETPOS=1
应该可以解决问题,
基本上 RRULE 将展开所有第一个星期一和星期三,然后 'contract' 即取每一对的第一个日期。
规范的第 43 页 https://www.ietf.org/rfc/rfc5545.txt 显示了 'expansions' 和 'contractions' 的优先级。