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

このイベントの場合、Google ライブラリ (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 に答える