« 時間大丈夫? - 概要 | トップページ | パックランドとか »

2004.07.04

時間大丈夫? - 休日の考え方

AsakusaLine04.gifこのアプリは平日/休日のダイヤに対応している。休日がそれ以上(土曜/日曜/祝日)に分かれている場合には未対応である。

1.対象とする休日 参考
  1.1.週で決定されている休日
    01/02週の月曜 (成人の日)
    07/03週の月曜 (海の日)
    09/03週の月曜 (敬老の日)
    10/02週の月曜 (体育の日)

  1.2.日付が決定されている休日
    01/01 (元日)
    04/29 (みどりの日)
    05/03 (憲法記念日)
    05/04 (間にあるので)
    05/05 (こどもの日)
    11/03 (文化の日)
    11/23 (勤労感謝の日)
    12/23 (天皇誕生日)
    03/21 (春分日→初期値)
    09/23 (秋分日→初期値)
    12/32 (元旦→プログラムの便宜上定義してるだけ)
    02/11 (建国記念日)

  1.3.春分日/秋分日 参考
    春分,秋分は2年分しか決定されていない。そこで次のように推測する。
    2012年→秋分の日を9/22、春分の日を3/20
    2004年、2005年、2008年、2009年、2013年→春分の日を3/20
    国立天文台のものを参考として2015年まで検討している。
    アプリでは、起動時(お待ちください画面)対象年の祝日を決定しているため、
    4ヶ月起動しっぱなしだと狂う可能性がある。(年末起動→越年→春分の日)

2.休日アルゴリズム
  2.1.比較する日付を取得
    当日の終電が過ぎたならば、明日の日付を対象とする

  2.2.日付で決定されている休日
    2.1と1.2.の月と日が合致すれば休日

  2.2.日付で決定されている休日の振替休日
    2.1が月曜であり、2.1の月と1.2の月が同じで、2.1の日=1.2の日+1、なら休日

  2.3.週で決定されている休日
    2.1が月曜の場合に処理を行う。
    2.1の月と1.2の月が同じで、1.2の週=(2.1の日+6)/7、なら休日
      →後半の式は「1週=1~7日、2週=8~14日、3週=15~21日」と同義。
       月曜と決まっていればそう決定できる。

  2.4.土日
    2.1が土曜もしくは日曜であれば休日

3.実装上の備考
  3.1.土日
    このアプリはJAVAなので、Calendarクラスを使用している。
    曜日の取得は、get(Calendar.DAY_OF_WEEK)を使用していて、
    Calendar.SUNDAY~Calendar.SATURDAY=1~7としている。
    万が一、別の数値を使った実装上だと動かない。

  3.2.「当日」の定義
    3:00~26:59を当日とする。
    つまり、始発は3:00より後であり、
    終電は26:59より前でなくてはならない。


|

« 時間大丈夫? - 概要 | トップページ | パックランドとか »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19919/896456

この記事へのトラックバック一覧です: 時間大丈夫? - 休日の考え方:

« 時間大丈夫? - 概要 | トップページ | パックランドとか »