0

スケジューリング アプリケーションを作成し、iCalendar 形式を使用しています。このコードを使用して、現在のカレンダーから空き時間枠を取得できることを認識しています。

DateTime start = new DateTime();
DateTime end = new DateTime(start.getTime() + 1000 * 60 * 60 * 24 * 7);
VFreeBusy request = new VFreeBusy(start, end, new Dur(0, 2, 0, 0));
VFreeBusy response = new VFreeBusy(request, myCalendar.getComponents());

そして、カレンダーのいくつかのイベントでこのコードを使用すると、次の出力が得られます。

DTSTAMP:20140323T204423Z
DTSTART:20020202T040023Z
DTEND:20020203T040023Z
DURATION:PT45M
FREEBUSY;FBTYPE=FREE:20020202T040023Z/PT2H,20020202T070023Z/PT4H,20020202T120023Z/PT16H
END:VFREEBUSY

私が知らないのは、その VFreeBusy オブジェクトをこれらの空き時間枠で使用して実際に取得する方法です。これにより、それらを比較して日付と時刻として使用できます。

必要な部分を取得するために response.getProperties().getProperty(Property.FREEBUSY) を使用しましたが、そのすべての文字列を解析する方法がわかりません。それらの時間枠を取得する他の方法があれば、アドバイスしてください.

4

1 に答える 1

1

ical4j を使用していると仮定します。プロパティを取得したら、getPeriods() メソッドを持つ FreeBusy プロパティにキャストできます。

于 2014-03-24T08:25:23.103 に答える