calendar - iCal 在最近的工作日进行每月定期活动?
问题描述
我想在每个月的 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=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=23,24;BYSETPOS=-1
- 通过将 BYSETPOS 设置为 -1,此规则将选择集合中匹配规则的最后一个匹配项。
如果 23 和 24 都在工作日,它将选择最后出现的第 24 天
如果 24 是星期六,则根据规则只匹配一次,因此它将选择星期五的第 23 天
如果 23 和 24 都在周末,则不会创建任何事件。这就是为什么需要另一个规则来解决这个问题。
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYMONTHDAY=24,25;BYSETPOS=1
- 通过将 BYSETPOS 设置为 1,此规则将选择集合中与规则匹配的第一个匹配项。
如果 24 和 25 都在工作日,它将选择第一个出现的时间,即第 24 天
如果 24 是星期天,则根据规则只匹配一次,因此它将选择星期一的第 25 天
如果 24 和 25 都在周末,则不会根据此规则创建任何事件。
推荐阅读
- networking - KryoNet 中的缓冲区溢出试图接收对象图
- python - 尝试为用户输入的每个字母分配一个表达式,然后打印该单词和该单词的总和
- python - 如何包含子模块并将它们安装在 python setup.py
- php - 重力形式 - 提交 POST 数据到托管支付网关
- apache - .htaccess 重定向到目录中的文件
- apache - 允许来自特定域的 POST 请求
- javascript - setTimeout 同时显示元素没有按预期破坏
- c# - 在部署到服务器时,无法在 C# Ajax 应用程序中下载文件。在本地运行很好,没有问题
- excel - 如果 F 列包含特定文本,则从 C 列中提取值
- javascript - 如何从 Flask Web 服务器设置 cookie