gpt4 book ai didi

icalendar - 从展开的 iCalendar RRule 确定事件

转载 作者:行者123 更新时间:2023-12-03 08:15:13 28 4
gpt4 key购买 nike

我正在通读 RFC 5545 并试图确定如何正确地找到一组事件。假设我有一个 WEEKLY rrule = 2(每隔一周)。我还为周二、周三、周四指定了 BYDAY 规则部分。假设我的开始日期是 2011-04-07(星期四),结束日期是 2011-04-27(星期三)。显然忽略不如日期重要的是,我认为我的出现集将包含:2011-04-07、2011-04-12、2011-04-13、2011-04-21、2011-04-26、2011-04- 27.

让我失望的是来自 RFC 的声明:“WKST 规则部分指定工作周开始的日期。有效值为 MO、TU、WE、TH、FR、SA 和 SU。当 WEEKLY “RRULE” 的间隔大于 1 且指定了 BYDAY 规则部分。”

因此,如果我的 WKST=MO,我从上面的陈述中看到一个暗示,即一周不是从开始日期开始,而是从 WKST 开始。这意味着我不需要使用基于开始日期的一周,在这种情况下,周四至周三,我需要实际从 WKST 开始并确定哪些事件发生在该周(周一至周日)和该 WKST 的每隔一周内.因此,出于计算目的,我的开始日期实际上是 2011 年 4 月 4 日。那是在开始日期之前,所以我提前到开始日期,但我坚持周一至周日的一周。这意味着我的事件集实际上是:2011-04-07、2011-04-19、2011-04-20、2011-04-21。这与我原来的设置有很大不同。

此外,如果这是正确的计算方法,这是否也意味着在扩展具有 >1 间隔的其他频率的规则情况时,我必须在该时间段的开始而不是开始日期“开始”。 MONTHLY 是否包含开始日期所在月份的第一天和最后一天。 YEARLY 是否包含开始日期当年的 1 月 1 日至 12 月 31 日?

我希望那里有一位 iCalendar 大师……我无法理解这里的逻辑。谢谢。

更新:我确实创建了一些 .ics 文件并导入到谷歌日历中。假设谷歌正确地解释了这些,我可以确认具有 INTERVAL>1 的扩展 MONTHLY 将使用该月的第一天到最后一天,而不是从事件开始日期开始的一个月。 YEARLY 规则以相同的方式工作,年份从 1 月 1 日到 12 月 31 日。不是我最初的预期,但希望这可以帮助其他人。

最佳答案

我不知道我是否有资格成为大师,但我肯定已经通过了所有的 RRULE。

我的理解是,是的,根据 WKST,每周规则绝对必须从一周的开始开始(然后您的开始日期可能会砍掉一些日期)。

因此,如果您想要原始日期集,则必须说 WKST=TH!

如果您相信谷歌已经有人已经弄清楚了这一切,那么检查您是否理解的一种方法是使用这些规则手动编码一些 ics 文件并将它们导入谷歌日历并查看谷歌生成的日期。

您可能还会发现此表对重复规则很有帮助 - 在页面底部的页脚中还有一些指向 ics 资源的链接。

http://icalevents.com/2447-need-to-know-the-possible-combinations-for-repeating-dates-an-ical-cheatsheet/

关于icalendar - 从展开的 iCalendar RRule 确定事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750586/

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