私の問題は一見非常に単純です。GregorianCalendar オブジェクトからカレンダー グラフィック ユーザー インターフェイスを作成し、そのメソッドを使用して、異なる月の正確な日数と、異なる日付に対応する平日を計算します。
しかし、平日は一貫して1日休みです。カレンダーによると、2013 年 7 月 1 日は「2」であり、私の住む地域では火曜日を意味します。月曜日は '1' だったはずです。"簡単!" 私は考えて、次の行に入れます: c.setFirstDayOfWeek(Calendar.MONDAY); しかし、反応はありません。
だから私は答えを求めてstackoverflowを検索しますが、私の問題を抱えている人は皆、1月が1ではなく0であることを忘れているようです。だから今私は立ち往生しています。
単純化されたコードとして、対応する出力を含む非常に短いコードを作成しました。
GregorianCalendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.MONTH, 6);
c.set(Calendar.DAY_OF_MONTH, 1);
c.set(Calendar.YEAR, 2013);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
System.out.println(sdf.format(c.getTime()));
System.out.println(c.get(Calendar.DAY_OF_WEEK));
出力は次のとおりです。
2013 年 1 月 7 日
2
明らかに間違いである症状を誤って修正するために、コードに「-1」を入れることを拒否します。助けていただければ幸いです。