8月4日の日記、GoogleCalendarAPI を使ってみたでは、循環イベント(Recurrence)は取得できたが、その例外までは考慮していなかった。


例外というのは例えば、
・毎週月曜日は○○だが来週は祝日だから休み
・毎週月曜日は○○だが来週は祝日だから火曜に変更

といったものである。


前者と後者の違いについて、まず説明する。

本家Goolgeで例のような操作をする場合は、循環イベントによって既に登録されているイベントをその日だけ
 前者は削除するだけ
 後者は右(火曜日)にドラッグ&ドロップするだけ


ここで、内部で起こっている処理は、
 前者は、循環イベントにその日は例外としてイベントがナシということを登録する。
 後者は、同様に環イベントにその日は例外としてイベントがナシということを登録し、その上で、循環イベントとは独立したイベントとして新規に火曜日にイベントを登録する
である


では、実際にGoogleCalendarAPIではどのように取得できるのかを示していく。


まず、循環イベントに対応するクラスとしてRecurrenceがあり
循環イベントの例外に対応するクラスとしてRecurrenceExceptionがある。

RecurrenceはCalendarEventEntryのインスタンスからgetRecurrence()で得られる。
例外の方は、同じくCalendarEventEntryのインスタンスからgetRecurrenceException()によって得られる。ここで、getRecurrenceException()の戻り値はListである。
なぜなら、循環イベントの例外は一日とは限らないからだ。


結果として、 「Google Calendar Data API」でスケジュール(イベント)を操作するのprintEventメソッドを以下のように修正すればいい

トラックバック(0)

このブログ記事を参照しているブログ一覧: [GoogleCalendarAPI]#2 循環イベントを例外も考慮して取得する

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

コメントする

 

iKnow

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