仕事で直しているシステムを外人さーんが使うことになって、
・月曜日を週初めにしたい!
・指定した日の週初めの日を取得したい!
という要望がありました。
JavaのCalendarクラスで上のような要望に答えるためには、
以下のようにすればいいみたい。
Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY); ※Calendar.MONDAYは曜日番号(日=1,月=2,…,土=7)
ということで、週初めを月曜日に設定してあげたのはいいんだが、
軽く調べてみたけど、週初めの日にカレンダーを移動させる
メソッドがあったりするわけじゃないので、仕方なく自力で
以下のようの頑張ってみた。
// 週初めの日までずらす cal.add(Calendar.DATE, -targetDayOfWeek + cal.getDayOfWeek() + (cal.getDayOfWeek() > targetDayOfWeek ? -7 : 0)); ※todayDayOfWeek は 指定した日の曜日番号。 ※cal.getDayOfWeek() のほうが、指定した日より大きくなるような場合は、 先週の話になるので、一週間(7日間)マイナス。