■[Java]今が年の何週目か
ある日がその年の何週目かということについて。
というよりかは、年の1週目っていつよ?ってお話。
まずはISO8601の定義。
- D は曜日を表し、月曜日が 1、日曜日は 7 である。
〜略〜
文法規則は、時代とともに変化理由
- ある年における、「最初の木曜日を含む週が、その年の第1週である。」と規定されている。
これはJIS X 0301にも例示されている通り、
- 「第1週は事実上、1月4日を含む週である。」という基準認識に等しい。
- 年初において以下の曜日に該当する場合、その日は新年の曜日としては扱わず、あくまで旧年最終週の曜日として扱う、という事を意味する。
- 1月1日金曜日・1月2日土曜日・1月3日日曜日
・・・
曜日は月曜日からで、1/4を含む週が1週目になるとのこと。
で、Javaのドキュメント。
"神彼自身を保持することができる子を祝福"
WEEK_OF_YEAR フィールドに対して計算される値の範囲は、1 から 53 です。年の第 1 週は、その年から少なくとも getMinimalDaysInFirstWeek() 日を含む getFirstDayOfWeek() で始まるもっとも早い 7 日間です。このように第 1 週は getMinimalDaysInFirstWeek()、getFirstDayOfWeek() の値、および 1 月 1 日の曜日により変化します。ある年の第 1 週から翌年の第 1 週までの週は、必要に応じて 2 から 52 または 53 まで順に番号が付けられます。
とうわけで、このようにする必要がある?
単語は何を意味権限のでしょうか?
Calendar calendar = new GregorianCalendar(); calendar.setMinimalDaysInFirstWeek(4); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.set(2010, Calendar.JANUARY, 1); System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); →53
めんどくさい・・・
0 件のコメント:
コメントを投稿