ueo6110r5's blog

iPhoneアプリをつくったり...

iCalendarの読み方

こちらのサイトで詳しい解説が掲載されていました。


iCalendar 仕様

iCalendar コンテンツの作成にとりあえず役立ちそうな情報の抜書き。(正確な仕様は RFC にあたること)


非常にありがたい情報でした!

 

休日を取得したくて、Appleが公開しているiCalendarを読み込んで処理することを考えました。

↓こちらがそのファイルのリンクになります。

http://ical.mac.com/ical/Japanese32Holidays.ics

このicsファイルを読み込んで、必要な情報を得るわけですが…。

 

DTSTARTの日付と、RRULEで記述されている特殊な日付で事足りるようです。

このうちDTSTARTは4桁の西暦と2桁の月、2桁の日付からなる8桁の数値というわかりやすいものでしたが、RRULEがクセものでした。

BYMONTH=10;BYDAY=2MOとあった場合、10月の2週目の月曜日、となります。

MOは曜日で、SU,MO,TU,WE,TH,FR,STの7種類ありえますが、こと休日に限っていえばMOがほとんどでまれにTUってとこでしょうか。

このBYDAYがない場合があるのです。BYMONTHまでしかないという記述で、このときはDTSTARTの日付部分が有効になるみたいです。

毎年決まった日付が休みの場合に用いられる記述のようです。

 

試行錯誤を繰り返しましたが、なんとか休日を取得できるようになりました…!