Календарь Java. Day_OF_WEEK возвращает неверное значение

1

Сегодня понедельник (должен вернуть 2), но возвращается 7 (суббота). Что мне не хватает?

int today = Calendar.DAY_OF_WEEK;
System.out.println(today);
Теги:
calendar

3 ответа

10
Лучший ответ

Вместо

int today = Calendar.DAY_OF_WEEK;

вы должны использовать

Calendar cal = Calendar.getInstance();
int today = cal.get(Calendar.DAY_OF_WEEK);

чтобы получить значение.

По пути вы только печатаете значение константы Calendar.DAY_OF_WEEK и не получаете фактическое значение для дня вашего объекта Calendar.

  • 0
    +1. Интересно, почему контракт метода заключается в том, чтобы принимать int а не принимать значение из перечисления.
  • 0
    ах, вот и все - забыл про часть cal.get! Спасибо!
Показать ещё 2 комментария
1

Когда вы используете

int today = Calendar.DAY_OF_WEEK;

Это то, что возвращается вам...

   /**
     * Field number for <code>get</code> and <code>set</code> indicating the day
     * of the week.  This field takes values <code>SUNDAY</code>,
     * <code>MONDAY</code>, <code>TUESDAY</code>, <code>WEDNESDAY</code>,
     * <code>THURSDAY</code>, <code>FRIDAY</code>, and <code>SATURDAY</code>.
     *
     * @see #SUNDAY
     * @see #MONDAY
     * @see #TUESDAY
     * @see #WEDNESDAY
     * @see #THURSDAY
     * @see #FRIDAY
     * @see #SATURDAY
     */
    public final static int DAY_OF_WEEK = 7;
0

Использование Calendar.DAY_OF_WEEK вернет номер поля (в этом случае 7), используемый для метода get.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню