我想在每个月的24日创建一个重复事件,如果这一天是周末,请将其安排在最近的工作日。如果这一天是星期六,我想把它安排在前一个工作日(星期五(。如果是星期天,我想把它安排在下个工作日(星期一(。这可能与iCal RRULE有关吗?
我已经看到过类似的问题,但那总是在下个工作日。
我能够使用这个组合的iCAL RRULE 根据您的需求创建一个重复事件
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=23,24;BYSETPOS=-1
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=24,25;BYSETPOS=1
RRULE:FREQ=每月;BYDAY=MO,TU,WE,TH,FR;按月天数=23,24;BYSETPOS=-1
- 通过将BYSETPOS设置为-1,此规则将选择与规则匹配的集合中的最后一个出现
如果23和24都在工作日,它将选择最后一次出现,即第24天
如果24落在周六,根据规则,只有一次匹配,因此它将选择周五的第23天
如果23日和24日都在周末,则不会创建任何活动。这就是为什么需要另一条规则来解决这个问题。
RRULE:FREQ=每月;BYDAY=MO,TU,WE,TH,FR;按月天数=24,25;BYSETPOS=1
- 通过将BYSETPOS设置为1,此规则将选择与规则匹配的集合出现次数中的第一个出现次数
如果24和25都在工作日,它将选择第一次出现,即第24天
如果24落在一个星期天,根据规则,只有一次匹配,因此它将选择星期一的第25天
如果24日和25日都是周末,则不会根据此规则创建任何活动。