Календарь Java - дата непредсказуема после установки day_of_weekJAVA

Программисты JAVA общаются здесь
Anonymous
Календарь Java - дата непредсказуема после установки day_of_week

Сообщение Anonymous »

У меня есть следующий код в тесте JUnit, который, казалось, работал на прошлой неделе, но на этой неделе не работает:

Код: Выделить всё

Calendar cal = Calendar.getInstance();
cal.set(2011, Calendar.JULY, 12);
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); // push the date to 15
System.out.println(cal.get(Calendar.DATE));
Как вы, вероятно, поняли из моего комментария, поскольку 12-е число — вторник, я ожидаю, что Date будет равно 15 после установки DAY_OF_WEEK на пятницу. Однако выведенное значение равно 22, что приводит к сбою теста.

Однако если я изменю код следующим образом и добавлю дополнительный вызов для получения:

Код: Выделить всё

Calendar cal = Calendar.getInstance();
cal.set(2011, Calendar.JULY, 12);
System.out.println(cal.get(Calendar.DATE));
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); // push the date to 15
System.out.println(cal.get(Calendar.DATE));
Я получаю ожидаемый результат: 12 и 15.

Может кто-нибудь объяснить, что происходит, и почему этот тест работал на прошлой неделе?

Подробнее здесь: https://stackoverflow.com/questions/672 ... ay-of-week

Вернуться в «JAVA»