Calendar API は私を混乱させます。私がやろうとしていることは単純に思えますが、実際にはうまくいかないようです。
週の最初の曜日をデフォルトの日曜日ではなく月曜日に設定したい (ロケールによって異なることはわかっているが、常に月曜日を強制したい)。さらに、特定の日付について、それが表す曜日を取得したいと考えています (たとえば、月曜日は 1、日曜日は 7)。
デフォルトの Calendar API でこれを行う方法はありますか? 私は次のようなことを試しました:
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTime(<some Date object that's a monday>);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
それは 1 ではなく 2 を与えます。それは の値を与えているからCalendar.MONDAY
だと思いますが、完全にはわかりません。その疑いに基づいて、次のことが機能します。
Calendar cal = Calendar.getInstance();
cal.setTime(<some Date object that's a monday>);
System.out.println(
(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) ?
7 : cal.get(Calendar.DAY_OF_WEEK) - 1);
...しかし、私はむしろそのifステートメントを持っていません。まっすぐな Calendar API を使ってやりたいことを行う方法はありますか?