2013-11-02 2 views
0

Мне нужно использовать Календарь для создания даты, на которой я указываю месяц, номер недели и день недели. я создаю новый экземпляр календаря: **Как использовать календарь для создания даты

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DAY_OF_WEEK,7); 
c.set(Calendar.WEEK_OF_MONTH,1); 
c.set(Calendar.MONTH,10); 

** при вызове c.getTime(); вместо получения первой субботы ноября я получаю последнюю субботу октября?

+0

Исправьте свои имена переменных, если это не 'java.util.Calendar'. И что вы ожидаете и что получаете? –

+0

Теперь вы меняете все свои ценности ... –

+0

Мне нужно указать первый день недели – primeFaceUser

ответ

1

DAY_OF_WEEK - воскресенье до субботы. Значение 7, указывает SATURDAY. WEEK_OF_MONTH является

Номер поля для получения и установки с указанием номера недели в пределах текущего месяца. Первая неделя месяца, определяемая getFirstDayOfWeek() и getMinimalDaysInFirstWeek(), имеет значение 1. Подклассы определяют значение WEEK_OF_MONTH за несколько дней до первой недели месяца.

Номера MONTH начинаются с 0, поэтому 10 - ноябрь. Вы не указали год, поэтому он использует текущий год.

первой недели ноябрьской субботу выпадает на

Sat Nov 02 11:19:24 EDT 2013 

Что еще вы ожидали? Октябрь? Измените значение MONTH на 9.

+0

НЕТ, НУЖНО ПОЛУЧИТЬ ПЕРВУЮ СУББОТУ НОЯБРЯ, НО Я ПОЛУЧАЮ В ПОСЛЕДНЮЮ СУББОТУ ОКТЯБРЯ. – primeFaceUser

+0

@primeFaceUser Прекратите кричать. Код, который вы сейчас имеете, дает первую субботу ноября. –

+0

, но он возвращается 26 октября, и это моя проблема, мне нужно решить эту необычную проблему. – primeFaceUser

0

Попробуйте

c.set(2000, 7, 4); // YYYY M D 

    // print the result 
    System.out.println("Altered date is :" + cal.getTime()); 
1

Вы должны исправить значения Календарь константы. См. Ниже код, который работает нормально. Пожалуйста, помните, что значение месяца в календаре начинается с 0 и 1, т. Е. Месяц как 0 означает месяц как январь.

Calendar c = Calendar.getInstance(); 
    c.set(Calendar.DAY_OF_WEEK,4); 
    c.set(Calendar.WEEK_OF_MONTH,4); 
    c.set(Calendar.MONTH,7); 
Смежные вопросы