Почему в календаре Java указано, что первый четверг месяца — пятая неделя?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему в календаре Java указано, что первый четверг месяца — пятая неделя?

Сообщение Anonymous »

Я пытаюсь понять, как поставить будильник на определенный день недели. Вот пример кода, который печатает то, что я ожидаю:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_MONTH, 1);
System.out.println("Week of month: " + calendar.get(Calendar.WEEK_OF_MONTH)); // Week of month: 1


Но когда я добавляю это в код, я получаю непонятный результат:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
calendar.set(Calendar.WEEK_OF_MONTH, 1);
System.out.println("Week of month: " + calendar.get(Calendar.WEEK_OF_MONTH)); // Week of month: 5


Я пытаюсь установить будильник на определенный день определенной недели. Сегодняшняя дата — 15 июня 2013 года. Может кто-нибудь объяснить мне это. Время Joda не подходит для того, что я делаю, поэтому мне нужно заставить это работать с обычными библиотеками Java. Спасибо за помощь.

Примечание редактора

Приведенный выше код вернет разные результаты в зависимости от даты его создания. запускается, поскольку Calendar.getInstance() возвращает календарь, установленный на текущее время. Для иллюстрации проблемы, не зависящей от текущего времени, используйте это:

DateFormat dateFormat = DateFormat.getDateInstance();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(1371294000000L);
System.out.println(dateFormat.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
System.out.println(dateFormat.format(calendar.getTime()));
calendar.set(Calendar.WEEK_OF_MONTH, 1);
System.out.println("Week of month: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println(dateFormat.format(calendar.getTime()));


Это выводит что-то вроде этого (по крайней мере, если в вашей локали по умолчанию используется григорианский календарь):

Jun 15, 2013
Jun 13, 2013
Week of month: 5
May 30, 2013


Подробнее здесь: https://stackoverflow.com/questions/171 ... -is-week-5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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