gpt4 book ai didi

rrule - RRule 能否描述每天在两个特定时间发生的事件?

转载 作者:行者123 更新时间:2023-12-04 00:12:52 44 4
gpt4 key购买 nike

假设我有一个事件发生在每天下午 7:00 和 2:00。 RRule 看起来像这样:

FREQ=DAILY;BYHOUR=10,14

如果我想要一个发生在上午 10:00 和下午 2:30 的事件,我会假设它看起来像这样:

FREQ=DAILY;BYHOUR=10,14;BYMINUTE=0,30

但这似乎不正确。该规范说“BYxxx 规则部分在一段时间内低于频率通常会增加或扩大重复发生的次数”。在 http://jkbrzt.github.io/rrule/ 进行测试产生以下内容:

  • 周一 10:00
  • 周一 10:30
  • 周一 14:00
  • 周一 14:30
  • 周二 10:00
  • 周二 10:30
  • 周二 14:00
  • 周二 14:30

我真正想要的是:

  • 周一 10:00
  • 周一 14:30
  • 周二 10:00
  • 周二 10:30
  • 周三 10:00
  • 周三 14:30
  • 周四 10:00
  • 周四 14:30

最佳答案

我发现我可以使用 BYSETPOS 来完成这项工作:

FREQ=DAILY;BYHOUR=10,14;BYMINUTE=0,30;BYSETPOS=1,4

如果您想要上午 10:30 和下午 2:00,您可以使用:

FREQ=DAILY;BYHOUR=10,14;BYMINUTE=30,0;BYSETPOS=2,3

重复实例将按时间顺序排列,因此 BYMINUTE 的顺序对 BYSETPOS 没有影响。为了演示,如果我们删除 BYSETPOS,上述两条规则每天都会产生以下实例:

╔═══╦══════╦════════╗║ P ║ Hour ║ Minute ║╠═══╬══════╬════════╣║ 1 ║   10 ║     00 ║║ 2 ║   10 ║     30 ║║ 3 ║   14 ║     00 ║║ 4 ║   14 ║     30 ║╚═══╩══════╩════════╝

因此,在第一种情况下,我们选择实例 1 和 4,在下面的情况下,我们选择实例 2 和 3。

请注意,这仅在 DTSTART 使用第一个 BYHOUR/BYMINUTE 值(上述情况下为上午 10:00)时有效。

关于rrule - RRule 能否描述每天在两个特定时间发生的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32575146/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com