问题标签 [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.

0 投票
2 回答
610 浏览

icalendar - iCalendar:没有 BYDAY 或 BYMONTHDAY 的每月规则

如何解释仅使用 DTSTART(无 BYDAY 或 BYMONTHDAY)的每月重复规则?

根据 RFC5545,您可以定义仅具有频率的重复规则,例如

带有 LineageOG(Android 日历)的智能手机显然将此解释为 BYMONTHDAY,并且仅在每月 31 日时才显示该事件。iPhone 显然将此解释为该月的最后一天,并在每个月(31 日、30 日甚至 28 日)显示该事件。哪种解释是正确的?

0 投票
3 回答
184 浏览

oracle - Oracle PLSQL 重复模式 RFC 2445

我有一个必要条件,我需要将RFC 2445递归模式转换为Dates使用 PLSQL。

例子:

根据该规则,我需要编写一个包含该模式下 10 次出现的表格。如下图所示,考虑开始日期为1/1/2019 12:00:00 AM

在此处输入图像描述

Oracle 是否提供任何允许我执行此操作的 PLSQL 包?如果没有,有人知道这方面的任何 PLSQL 项目倡议吗?

Ps:这与 Oracle 在 Job Schedules 上使用的模式完全相同。

0 投票
0 回答
57 浏览

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 评估器能够产生预期的结果。

0 投票
1 回答
379 浏览

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字段不是必需的。但如果我想让它在周三和周五重复,我会需要它,这就是我遇到问题的地方。

0 投票
1 回答
114 浏览

java - 使用 google-rfc-2445 createDateTimeIterator 生成日期范围时,结束日期(UNTIL)被排除在外

我需要知道如何避免 UNTIL 或结束日期被排除在此创建的日期范围内 - https://stackoverflow.com/a/27628608/5311573

请帮忙。

我正在尝试使用上面链接中给出的答案来获取日期范围,但它每次都排除了结束日期。

它会返回以下结果:

0 投票
1 回答
255 浏览

java - java中的4-4-5会计日历

我必须在 java 中使用 4-4-5 会计日历。

在给定当前月份的特定日期的情况下,我正在寻找一种方法来获得相应的会计月份。

例如,对于 2020 年,我将有以下会计月份:

因此,例如,给定日期 4 月 28 日,我需要收到如下信息:

我还尝试将 ThreeTen-Extra项目与 AccountingChronology 和 AccountingChronologyBuilder 一起使用。但是,真诚地,我很难理解如何使用它。

0 投票
2 回答
135 浏览

java - 会计日期(ChronoLocalDate)到Java中的即时

我正在使用在这个项目中实现的AccountingDate

您知道将 AccountingDate 转换为 Instant 或 LocalDate 的方法吗?

0 投票
1 回答
288 浏览

cron - Quartz.net RFC 2445 或 RFC 5545 而不是 CRON

我们有一个在 .NET 中运行的 Web 服务器,它使用 Quartz 来安排作业。作业的触发器以RFC 2445格式提供,但 Quartz 使用CRON 格式。我现在想要么

  • A: 找到一个可以将我的 RFC 2445 规则转换为 CRON 规则的库
  • B: 不如给 Quartz RFC 规则。

在后一种情况下,我发现了一些 Java 库,但没有用于 .NET。

我也尝试编写自己的库,但我遇到了间隔。一个 RFC2445 规则可以定义一个双周(或三周或n-周)作业

频率=每周;每天=月;间隔=2

即每隔一个星期一。然而 CRON 似乎没有这个功能。

0 投票
2 回答
147 浏览

icalendar - 半周活动的 RR 规则

我一直在试图弄清楚如何编写一个每周交替发生事件的 RRULE;例如:

  • A 周:周一下午 4 点
  • B 周:周五下午 4 点

A 周和 B 周连续交替到未来。

我得到的最接近的是:

这很接近,但给了我同一周的星期一和星期五。如何编码以选择两周间隔内的第二个星期五?这似乎比使用 RRULE 可以完成的大部分操作要简单得多,所以我可能会遗漏一些明显的东西?

0 投票
1 回答
26 浏览

java - Rrule UNTIL 过去但仍然返回一个值

我正在使用 google-rfc2445 库 (com.google.ical) 来解析 RRULE。

在下面的测试中,规则 UNTIL 设置为过去(1999 年),dtStart 设置为现在。我期待 0 结果,但不知何故得到 1 结果,这看起来像 dtStart。我傻眼了,为什么它包含了 UNTIL 绑定之外的项目。这是预期的行为吗?

上述测试输出

更新1:根据这个答案,谷歌日历中的 ICAL 有额外的事件,无论 UNTIL 是否在过去,似乎 DTSTART 总是第一次出现。我觉得这很奇怪。现在我求助于正则表达式解析 rrule 字符串来确定是否存在 UNTIL 以及是否存在过去。:(