RECUR型のBYDAYルール [iCalendar]
今回は、前回読み切れなかった「BYDAY」ルールについてです。
前回も記載した通り、このルールは週内の曜日をCOMMA(0x2c)で区切って指定するのですが、他のルールとの組み合わせが多少複雑となっています。書式を再度載せておきます。
書式を見てわかります通り、曜日の前に整数で修飾することで何番目の曜日かを指定することもできます。整数で修飾されている時の解釈は「FREQ」の設定内容によって、次の様に変わってくる様です。
なお、整数で修飾されていない場合、周期内の全ての対象日を示します。例えば、「MONTHLY」ルールの場合、「BYDAY=MO」の様な表記は月内のすべての月曜日を示します。
う〜ん、最初読んだ時には理解不能だったんですが、何となく整理できましたかね〜。
前回も記載した通り、このルールは週内の曜日をCOMMA(0x2c)で区切って指定するのですが、他のルールとの組み合わせが多少複雑となっています。書式を再度載せておきます。
( weekdaynum *("," weekdaynum) ) weekdaynum = [["+" / "-"] 1*2DIGIT] weekday ; 1-53 weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA" |
書式を見てわかります通り、曜日の前に整数で修飾することで何番目の曜日かを指定することもできます。整数で修飾されている時の解釈は「FREQ」の設定内容によって、次の様に変わってくる様です。
FREQ | 整数による修飾の解釈 | |||
MONTHLY | +1MO or 1MO | 月内の第一月曜日 | ||
-1MO | 月内の最終月曜日 | |||
YEARY | BYMONTH有り | +1MO or 1MO | 月内の第一月曜日 | -1MO | 月内の最終月曜日 |
BYWEEKNO有り | 整数による修飾はしない(MUST NOT) | |||
上記以外 | +1MO or 1MO | 年内の第一月曜日 | -1MO | 年内の最終月曜日 |
上記以外 | 整数による修飾はしない(MUST NOT) |
なお、整数で修飾されていない場合、周期内の全ての対象日を示します。例えば、「MONTHLY」ルールの場合、「BYDAY=MO」の様な表記は月内のすべての月曜日を示します。
う〜ん、最初読んだ時には理解不能だったんですが、何となく整理できましたかね〜。
コメント 0