トップ 新規 差分 一覧 ソース 検索 ヘルプ RSS ログイン

「複雑な周期」設定方法

 はじめに


秘書君にある「複雑な周期」はiCalender形式(RFC2455で定義)の周期指定方法に準拠しています。

 基本

単純に周期的な予定


まず周期の単位を指定します。

例)
 FREQ=MONTHLY

秘書君は以下に対応しています
日単位 DAILY
週単位 WEEKLY
月単位 MONTHLY
年単位 YEARLY

次に周期の長さを指定します。
INTERVAL=2
数字の上限は特に無いです。
# 常識外れに大きいのはエラーになります

これぐらいが基本です。

6週間に1回なら
FREQ=WEEKLY;INTERVAL=6
です。

少し複雑な指定


曜日や日、月を指定できます。

曜日指定 BYDAY

  日月火水木金土曜がそれぞれ SU, MO, TU, WE, TH, FR, SA となります。

日にち指定 BYMONTHDAY

  普通の日付です。
  FREQ=MONTHLY;BYMONTHDAY=15
  毎月15日です。

年の日指定 BYYEARDAY

  1月1日が1,2月1日が32です
  FREQ=YEARLY;INTERVAL=2;BYYEARDAY=15
  隔年の1月15日です。

BYWEEKNO

  年明けてからの週番号です。
  余り日本じゃ使わないですね。

BYMONTH

  月を指定します。
  FREQ=YEARLY;INTERVAL=2;BYMONTH=2,4,6,9,11
  で小の月です。
  …これバグってて動かないですね…あれー?

BYSETPOS

  範囲内で条件を満たすいくつ目か、を指定します。
  -1だと最後です。
  FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-3
  こう書くと「毎月の平日の最後から3日目」
  FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-3
  これで「毎月の平日の最初から3日目」です。

WKST

  週を日曜からはじめるか月曜からはじめるかです。
  週番号の指定にしか使わないので日本人には余り意味
  ありません。

どうもBYMONTHあたりがバクってます…直します。

 参考例


隔月の第2土曜日
FREQ=MONTHLY;INTERVAL=2;BYDAY=2SA

 ドキュメント

RFCの原文はこちら(英語)
http://www.ietf.org/rfc/rfc2445.txt