1

问题出现在以下事件中。

BEGIN:VEVENT
UID:483b7d72-7412-4aca-92f1-b7bf427a9c5a
RRULE:FREQ=DAILY;COUNT=3;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
SUMMARY:tes
DTSTART;TZID="Asia/Tokyo":20131215T000000
DTEND;TZID="Asia/Tokyo":20131215T003000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
DTSTAMP:20130606T064916Z
SEQUENCE:2
END:VEVENT

对于此事件,谷歌库 (rfc2445-4Mar2011.jar) 返回 4 个重复日。

输出日期为 20131215T000000、20131216T000000、20131217T000000、20131218T000000

但我将此事件的 rrule 计数设置为 3。即便如此,我也有 4 天重复。

请帮我解决这个问题。

4

3 回答 3

1

这确实是图书馆的一个错误

RFC2445 §3.1.10

COUNT 规则部分定义了对重复范围进行范围限制的出现次数。“DTSTART”属性值(如果指定)计为第一次出现。

甚至取代它的 rfc5545 也说明了§3.3.10

COUNT 规则部分定义了对重复范围进行范围限制的出现次数。“DTSTART”属性值始终计为第一次出现。

从中可以清楚地看出,重复列表将是:

20131215T000000, 20131216T000000, 20131217T000000

于 2013-06-09T14:44:40.647 回答
0

只能确认这是您库中的错误。对于它的价值,ical4j 正确地扩展了这个 RRULE。

于 2013-06-07T13:24:25.247 回答
0

您的 DTSTART 不符合您的 RRULE:DTSTART 是星期日,但您的 RRULE 将日期限制为星期一->星期五。鉴于此,我怀疑不同的代码库会以不同的方式解释这一点。您应该强烈考虑更改您的事件,使其更加标准。

于 2013-06-07T17:51:10.257 回答