スケジュール > 「毎月第 ○曜日」での繰り返しスケジュール登録

mrktanaka 143views 更新:2015年9月2日

ガラケー表示対応

  • ガラケーの表示はScheduleUtils.isView ではなくて独自で判定しているので、第n◯曜日用に条件を足した
  • CellScheduleWeeklySelectData, CellScheduleWeeklySelectByMemberData にこのようにルールを記述した。
    • 1週間の表示について、基本的に今日の曜日から始まる1週間単位で表示している。
    • index は、今日の曜日から始まる7日間のリストのどこに入れるかを計算した値
    • “cal”は表示する1週間の次の日を表すので、cal から (7-index)日前 を cal3 として、cal3 の DAY_OF_WEEK_IN_MONTH とリピートパターンの値を比較

第n週と第n曜日の違い

  • あまり意識してなかったけど月の第1週に第1月曜日が存在しない場合ももちろんある

iCalの対応

  • iCalファイルの出力を対応するので、とりあえずisViewをこれまでと同様に書き換えた。
  • 繰り返しのパターンとして、ical4jで「毎週」は対応してあるけど…→Class Recur
  • 第n◯曜日に対応させるために、まずiCalの仕様でどう記述することになっているか確認するといいとアドバイスをいただいた

Each BYDAY value can also be preceded by a positive (+n) or negative (-n) integer. If present, this indicates the nth occurrence of the specific day within the MONTHLY or YEARLY RRULE. For example, within a MONTHLY rule, +1MO (or simply 1MO) represents the first Monday within the month,…

とのことなので、エディタでicsファイルの

RRULE:FREQ=WEEKLY;UNTIL=20151202T000000;BYDAY=FR

RRULE:FREQ=MONTHLY;UNTIL=20151202T000000;BYDAY=1FR

と書き換えてアプリで開いた所期待通りに第1金曜日にのみ表示された  

  • 明日はこのルールを書き込めるようにします

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません