今までの#2 循環イベントを例外も考慮して取得する
#1 GoogleCalendarAPIを使ってみたでは、イベントを取得する際に、範囲を指定していなかった

このことが、循環イベントを取得する際に面倒なことになっていたのかもしれない。



今までのListのインスタンスの取得方法は、


だったのを、今回は、
としてみた。


この結果、8月分のイベントのみが取得でき、循環イベントに関しては8月と9月をまたいでるものは8月分のみ取得できる


これによって何が嬉しいかというと、
今まで、循環イベントやその例外を含めてイベントを取得しようと思ったら、
entry.getTimes()によって得られるListインスタンスのgetStartTime().toString()や
getEndTime().toString()では循環イベントは取得できず、


RecurrenceインスタンスのgetValue()による
DTSTART;TZID=Asia/Tokyo:20070802T100000  //開始時間
DTEND;TZID=Asia/Tokyo:20070802T130000      //終了時間
RRULE:FREQ=DAILY;UNTIL=20070809T010000Z;WKST=SU  //繰り返しルール
BEGIN:VTIMEZONE
TZID:Asia/Tokyo
X-LIC-LOCATION:Asia/Tokyo
BEGIN:STANDARD
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
TZNAME:JST
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE

と

Listの各要素の.getEntryLink().getEntry().getId()によって得た
ohqhtp5s01jelcut44eua919hg_20070807T010000Z  //例外日
ohqhtp5s01jelcut44eua919hg_20070808T010000Z  //例外日
ohqhtp5s01jelcut44eua919hg_20070809T010000Z  //例外日

を元に計算しなければならなかったのが、

後者の方法では、

entry.getTimes()によって得られるListインスタンスのgetStartTime().toString()や
getEndTime().toString()によって、循環イベントも、以下のように取得できる

2007-08-07T15:30:00.000+09:00  //getStartTime().toString()
2007-08-07T18:30:00.000+09:00  //getEndTime().toString()

2007-08-03T10:00:00.000+09:00
2007-08-03T13:00:00.000+09:00

2007-08-08T15:30:00.000+09:00
2007-08-08T18:30:00.000+09:00

2007-08-05T10:00:00.000+09:00
2007-08-05T13:00:00.000+09:00

2007-08-06T10:00:00.000+09:00
2007-08-06T13:00:00.000+09:00

2007-08-04T10:00:00.000+09:00
2007-08-04T13:00:00.000+09:00

2007-08-02T10:00:00.000+09:00
2007-08-02T13:00:00.000+09:00

2007-08-09T17:30:00.000+09:00
2007-08-09T20:30:00.000+09:00



トラックバック(0)

このブログ記事を参照しているブログ一覧: [GoogleCalendarAPI]#3 取得範囲を指定して、イベントを取得する

このブログ記事に対するトラックバックURL: http://blog.isocchi.com/MovableType/mt-tb.cgi/4

コメントする

 

iKnow

あわせて読みたいブログパーツ
Firefox meter