2013-06-06 45 views
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個重複的日子。

請幫我解決這個問題。

回答

0

只能確認這是您庫中的錯誤。對於它的價值,ical4j正確地擴展了這個RRULE。

0

您的DTSTART不適合您的RRULE:DTSTART是一個星期日,但您的RRULE限制日期爲星期一至星期五。鑑於此,我懷疑不同的代碼庫將以不同的方式解釋這一點。你應該強烈考慮改變你的事件,使它更加標準。

1

這確實是在庫

RFC2445§3.1.10

的COUNT規則部分定義出現在其上的數目的錯誤的範圍內結合的復發。 「DTSTART」屬性值(如果指定)計爲第一次出現。

即使是superseds它指出§3.3.10

的COUNT規則部分限定在其處窄幅復發出現的次數的rfc5545。 「DTSTART」屬性值總是被視爲第一次出現。

從中可以清楚recurences的名單將是:

20131215T000000,20131216T000000,20131217T000000