问题标签 [rfc2445]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
icalendar - iCalendar:没有 BYDAY 或 BYMONTHDAY 的每月规则
如何解释仅使用 DTSTART(无 BYDAY 或 BYMONTHDAY)的每月重复规则?
根据 RFC5545,您可以定义仅具有频率的重复规则,例如
带有 LineageOG(Android 日历)的智能手机显然将此解释为 BYMONTHDAY,并且仅在每月 31 日时才显示该事件。iPhone 显然将此解释为该月的最后一天,并在每个月(31 日、30 日甚至 28 日)显示该事件。哪种解释是正确的?
java - Biweekly/google-rfc-2445 RR 根据开始日期规定不同的行为
RRULE 基于开始时间的不同行为:
嗨,我目前正在尝试编写一个 cron 到 rrule 转换器,但遇到了一些特定规则的问题。对于以下规则:“FREQ=YEARLY;BYMONTH=1,2,3,4,5,6,7,8,9,10,11,12;BYMONTHDAY=1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31; BYDAY=SU,MO,TU,WE,TH,FR,SA;BYHOUR=0,10,20;BYMINUTE=0"
日期迭代器的行为根据指定的开始时间而有所不同:
在此示例中,我尝试使用相同的规则检索 100 次出现。返回的出现次数因指定的开始时间而异。第一个日期将返回预期的 100 个结果,第二个日期将返回一个无效的事件,这似乎是开始日期。这似乎是由一年中的最后一个月引起的,当指定另一个日期为 12 月时,似乎返回了相同的返回值。Google-rfc-2445 具有相同的行为,但 ical4j 和其他一些来自其他语言的 rrule 评估器能够产生预期的结果。
python - RFC 5545 每天重复出现的问题
我看到了按日(例如每周二和周四)重复模式的错误行为。
假设我有一个活动从太平洋时间 3 月 12 日星期四晚上 9 点(2100 小时)开始,每周二和周四重复。太平洋时间是UTC-0700
,因此该活动的 UTC 开始日期为 0400h,即次日 3/13--4am。
当我的重复生成时,它们采用原始事件的开始时间,而不是日期。所以我的重复是在周二和周四的 0400h 生成的,这意味着周一和周三的 9p PT。
我尝试在本地(太平洋)时间创建事件并指定 a TZ-ID
,但它似乎没有帮助。
有没有办法解决这个问题?我不想试图推断是否会出现问题并即时重写重复模式,因为 A) 似乎很容易出错,并且 B) 将使编辑重复模式的界面也非常具有挑战性。
编辑:
考虑这个规则:
它创建于 4 月 10 日星期五太平洋时间下午 6:30 开始,并在每个星期五重复。
当转换为 UTC 时,这意味着它的开始日期为 4 月 11 日凌晨 1:30。
问题在于,这BY_DAY=FR
迫使所有子事件在星期五开始创建,开始时间为 1:30a,这意味着它们从星期四晚上山区时间开始。
我认为这不是代码问题,我认为这是BY_DAY
在开始时间在 UTC 午夜之后导致问题的重复规则问题。
另请注意,这是一个示例。显然,在这种情况下,该BY_DAY
字段不是必需的。但如果我想让它在周三和周五重复,我会需要它,这就是我遇到问题的地方。
java - 使用 google-rfc-2445 createDateTimeIterator 生成日期范围时,结束日期(UNTIL)被排除在外
我需要知道如何避免 UNTIL 或结束日期被排除在此创建的日期范围内 - https://stackoverflow.com/a/27628608/5311573
请帮忙。
我正在尝试使用上面链接中给出的答案来获取日期范围,但它每次都排除了结束日期。
它会返回以下结果:
java - java中的4-4-5会计日历
我必须在 java 中使用 4-4-5 会计日历。
在给定当前月份的特定日期的情况下,我正在寻找一种方法来获得相应的会计月份。
例如,对于 2020 年,我将有以下会计月份:
因此,例如,给定日期 4 月 28 日,我需要收到如下信息:
我还尝试将 ThreeTen-Extra项目与 AccountingChronology 和 AccountingChronologyBuilder 一起使用。但是,真诚地,我很难理解如何使用它。
java - 会计日期(ChronoLocalDate)到Java中的即时
我正在使用在这个项目中实现的AccountingDate。
您知道将 AccountingDate 转换为 Instant 或 LocalDate 的方法吗?
icalendar - 半周活动的 RR 规则
我一直在试图弄清楚如何编写一个每周交替发生事件的 RRULE;例如:
- A 周:周一下午 4 点
- B 周:周五下午 4 点
A 周和 B 周连续交替到未来。
我得到的最接近的是:
这很接近,但给了我同一周的星期一和星期五。如何编码以选择两周间隔内的第二个星期五?这似乎比使用 RRULE 可以完成的大部分操作要简单得多,所以我可能会遗漏一些明显的东西?
java - Rrule UNTIL 过去但仍然返回一个值
我正在使用 google-rfc2445 库 (com.google.ical) 来解析 RRULE。
在下面的测试中,规则 UNTIL 设置为过去(1999 年),dtStart 设置为现在。我期待 0 结果,但不知何故得到 1 结果,这看起来像 dtStart。我傻眼了,为什么它包含了 UNTIL 绑定之外的项目。这是预期的行为吗?
上述测试输出
更新1:根据这个答案,谷歌日历中的 ICAL 有额外的事件,无论 UNTIL 是否在过去,似乎 DTSTART 总是第一次出现。我觉得这很奇怪。现在我求助于正则表达式解析 rrule 字符串来确定是否存在 UNTIL 以及是否存在过去。:(