1

我在每个月的 1 日有一个重复的日历活动,当 1 日是周六/周日时,iCal 是否可以将其安排在周五的最后一个工作日?

4

2 回答 2

2

如果我理解正确,以下 RRULE 应该可以解决问题:

FREQ=MONTHLY;BYDAY=1MO,1TU,1WE,1TH,1FR,-1FR;BYMONTHDAY=1,-1,-2

查看接下来的 100 个实例

它基本上做了两件事:

  1. 迭代该月第一天的第一个工作日
  2. 迭代每个月的最后一个星期五,该星期五位于该月的最后一天或最后一天的最后一天(在这种情况下,下个月的第一天落在星期六或星期日)。

应该产生相同结果的稍短的版本是

FREQ=MONTHLY;BYDAY=1MO,1TU,1WE,1TH,FR;BYMONTHDAY=1,-1,-2

这只是在每个星期五进行迭代,但只保留每个月的第一天、最后一天和第二天最后一天的那些。虽然看起来上面的重复扩展服务不同意。这可能是一个错误。

于 2016-07-12T21:56:32.067 回答
0

我假设您的意思是“上个月的最后一个工作日星期五,在这种情况下,我认为这是不可能的。这意味着有些月份出现 2 次,而其他月份出现 0 次,这实际上是行不通的。

您可以轻松完成本月的第一个工作日(第一个或第一个星期一):

频率=每月;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1

或者,您可以始终在本月的最后一个工作日进行:

频率=每月;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
于 2016-07-11T19:16:54.937 回答