Моя проблема, по-видимому, очень проста. Я создаю графический пользовательский интерфейс календаря, из объекта GregorianCalendar, и использует его методы для расчета правильного количества дней в разные месяцы и разных рабочих дней в разные дни.Почему мой объект GregorianCalendar возвращает неправильный день недели?
Но будние дни являются постоянными один день. Календарь утверждает, что 1 июля 2013 года это «2», что в моей части света означает вторник. Это должно было быть «1» в понедельник. "Легко!" я думаю, и положил в строку: c.setFirstDayOfWeek (Calendar.MONDAY); Но реакция не дается.
Так что я ищу stackoverflow для ответа, но все с моей проблемой, похоже, забыли, что январь равен 0, а не 1. У меня нет. Так что теперь я застрял.
Как simplifyed код, я сделал очень короткий кусок кода, с его соответствующий выход:
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));
и выход:
01-07-2013
Я отказываюсь вставить «-1» в свой код, чтобы неправильно исправить симптомы ошибки. Помощь приветствуется.
Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –
2 - понедельник ... 1 - воскресенье ... Кроме того, setFirstDayOfWeek, согласно документу: 'Первая неделя месяца или года определяется как самый ранний семидневный период, начинающийся с getFirstDayOfWeek() и содержащий по крайней мере getMinimalDaysInFirstWeek () дней этого месяца или года. Там нет «очевидной ошибки». Просто проблема локализации ... – ppeterka
Спасибо. На данный момент я перестала пытаться установить понедельник в качестве первого дня недели. Мне просто проще было изменить мой другой код, чтобы ожидать, что воскресенье - номер 1, независимо от того, насколько он нелогичен мне. Благодарим за сообщение, что моя ошибка была моей интерпретацией метода setFirstDayOfWeek(). Этого было бы трудно найти самостоятельно. Мне жаль, что я не могу принять это как ответ, но похоже, что он опубликован только как комментарий. – KjetilNordin