Класс перечисления Month
- Все реализованные интерфейсы:
Serializable, Comparable<Month>, Constable, TemporalAccessor, TemporalAdjuster
public enum Month extends Enum<Month> implements TemporalAccessor, TemporalAdjuster
Month — это перечисление, представляющее 12 месяцев года: январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь и декабрь.
Помимо текстового имени перечисления, каждому месяцу года соответствует значение int. Значение int соответствует обычному порядку и стандарту ISO-8601: от 1 (январь) до 12 (декабрь). Для ясности кода рекомендуется использовать перечисление, а не значение int.
Не используйте ordinal() для получения числового представления Month. Вместо этого используйте getValue().
Это перечисление представляет распространенное понятие, используемое во многих календарных системах. Поэтому его можно использовать в любой календарной системе, в которой понятие месяца года определено в точности так же, как в календарной системе ISO-8601.
- Требования к реализации:
- Это неизменяемое и потокобезопасное перечисление.
- С версии:
- 1.8
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Enum
Enum.EnumDesc<E>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
APRIL |
Единственный экземпляр месяца апрель, состоящего из 30 дней. |
AUGUST |
Единственный экземпляр месяца август, состоящего из 31 дня. |
DECEMBER |
Единственный экземпляр месяца декабрь, состоящего из 31 дня. |
FEBRUARY |
Единственный экземпляр месяца февраль, состоящего из 28 дней или 29 дней в високосном году. |
JANUARY |
Единственный экземпляр месяца январь, состоящего из 31 дня. |
JULY |
Единственный экземпляр месяца июль, состоящего из 31 дня. |
JUNE |
Единственный экземпляр месяца июнь, состоящего из 30 дней. |
MARCH |
Единственный экземпляр месяца март, состоящего из 31 дня. |
MAY |
Единственный экземпляр месяца май, состоящего из 31 дня. |
NOVEMBER |
Единственный экземпляр месяца ноябрь, состоящего из 30 дней. |
OCTOBER |
Единственный экземпляр месяца октябрь, состоящего из 31 дня. |
SEPTEMBER |
Единственный экземпляр месяца сентябрь, состоящего из 30 дней. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Изменяет указанный объект даты и времени так, чтобы он содержал этот месяц года. |
int |
firstDayOfYear |
Возвращает номер первого дня этого месяца в году. |
Month |
firstMonthOfQuarter() |
Возвращает месяц, соответствующий первому месяцу этого квартала. |
static Month |
from |
Создает экземпляр Month на основе объекта даты и времени. |
int |
get |
Возвращает значение указанного поля для этого месяца года в виде int. |
String |
getDisplayName |
Возвращает текстовое представление, например «янв.» или «декабрь». |
long |
getLong |
Возвращает значение указанного поля для этого месяца года в виде long. |
int |
getValue() |
Возвращает значение int месяца года. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
int |
length |
Возвращает число дней в этом месяце. |
int |
maxLength() |
Возвращает максимальное число дней в этом месяце. |
int |
minLength() |
Возвращает минимальное число дней в этом месяце. |
Month |
minus |
Возвращает месяц года, который наступает за указанное число месяцев до этого месяца. |
static Month |
of |
Создает экземпляр Month на основе значения int. |
Month |
plus |
Возвращает месяц года, который наступает за указанное число месяцев после этого месяца. |
<R> R |
query |
Выполняет запрос к этому месяцу года с помощью указанного запроса. |
ValueRange |
range |
Возвращает диапазон допустимых значений указанного поля. |
static Month |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static Month[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Подробное описание констант перечисления
JANUARY
public static final Month JANUARY
1.FEBRUARY
public static final Month FEBRUARY
2.MARCH
public static final Month MARCH
3.APRIL
public static final Month APRIL
4.MAY
public static final Month MAY
5.JUNE
public static final Month JUNE
6.JULY
public static final Month JULY
7.AUGUST
public static final Month AUGUST
8.SEPTEMBER
public static final Month SEPTEMBER
9.OCTOBER
public static final Month OCTOBER
10.NOVEMBER
public static final Month NOVEMBER
11.DECEMBER
public static final Month DECEMBER
12.Подробное описание методов
values
public static Month[] values()
- Возвращает:
- массив, содержащий константы этого класса перечисления в порядке их объявления
valueOf
public static Month valueOf(String name)
- Параметры:
-
name— имя возвращаемой константы перечисления. - Возвращает:
- константу перечисления с указанным именем
- Вызывает исключение:
-
IllegalArgumentException— если в этом классе перечисления нет константы с указанным именем -
NullPointerException— если аргумент равен null
of
public static Month of(int month)
Month на основе значения int. Month — это перечисление, представляющее 12 месяцев года. Этот метод-фабрика позволяет получить значение перечисления на основе значения int. Значение int соответствует стандарту ISO-8601: от 1 (январь) до 12 (декабрь).
- Параметры:
-
month— представляемый месяц года: от 1 (январь) до 12 (декабрь) - Возвращает:
- месяц года, не null
- Вызывает исключение:
-
DateTimeException— если месяц года недопустим
from
public static Month from(TemporalAccessor temporal)
Month на основе объекта даты и времени. Этот метод получает месяц на основе указанного объекта даты и времени. TemporalAccessor представляет произвольный набор сведений о дате и времени, который этот метод-фабрика преобразует в экземпляр Month.
Преобразование извлекает поле MONTH_OF_YEAR. Извлечение разрешено только в том случае, если объект даты и времени использует календарь ISO либо может быть преобразован в LocalDate.
Сигнатура этого метода соответствует функциональному интерфейсу TemporalQuery, что позволяет использовать его в качестве запроса посредством ссылки на метод, Month::from.
- Параметры:
-
temporal— преобразуемый объект даты и времени, не null - Возвращает:
- месяц года, не null
- Вызывает исключение:
-
DateTimeException— если преобразование вMonthневозможно
getValue
public int getValue()
int значение месяца года. Нумерация значений соответствует стандарту ISO-8601: от 1 (январь) до 12 (декабрь).
- Возвращает:
- месяц года: от 1 (январь) до 12 (декабрь)
getDisplayName
public String getDisplayName(TextStyle style, Locale locale)
Возвращает текстовое название, используемое для обозначения месяца года и подходящее для отображения пользователю. Стиль возвращаемого текста и локаль задаются параметрами.
Если текстовое соответствие не найдено, возвращается numeric value.
- Параметры:
-
style— требуемая длина текста, не null -
locale— используемая локаль, не null - Возвращает:
- текстовое значение месяца года, не null
isSupported
public boolean isSupported(TemporalField field)
Этот метод проверяет, можно ли запросить у этого месяца года значение указанного поля. Если результат равен false, вызовы методов range и get приведут к выбросу исключения.
Если поле — MONTH_OF_YEAR, этот метод возвращает true. Для всех остальных экземпляров ChronoField возвращается false.
Если поле не является ChronoField, результат этого метода определяется вызовом TemporalField.isSupportedBy(TemporalAccessor) с аргументом this. Поддержка поля определяется самим полем.
- Указан в:
-
isSupportedв интерфейсеTemporalAccessor - Параметры:
-
field— проверяемое поле; null возвращает false - Возвращает:
- true, если это поле поддерживается для данного месяца года; в противном случае false
range
public ValueRange range(TemporalField field)
Объект диапазона содержит минимальное и максимальное допустимые значения поля. Этот месяц используется для повышения точности возвращаемого диапазона. Если невозможно вернуть диапазон, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле — MONTH_OF_YEAR, возвращается диапазон месяцев года от 1 до 12. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода определяется вызовом TemporalField.rangeRefinedBy(TemporalAccessor) с аргументом this. Возможность получения диапазона определяется самим полем.
- Указан в:
-
rangeв интерфейсеTemporalAccessor - Параметры:
-
field— поле, для которого требуется получить диапазон, не null - Возвращает:
- диапазон допустимых значений поля, не null
- Вызывает исключение:
-
DateTimeException— если невозможно получить диапазон для поля -
UnsupportedTemporalTypeException— если поле не поддерживается
get
public int get(TemporalField field)
int. Этот метод запрашивает значение указанного поля для данного месяца. Возвращенное значение всегда находится в допустимом диапазоне значений поля. Если невозможно вернуть значение, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле — MONTH_OF_YEAR, возвращается значение месяца года от 1 до 12. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода определяется вызовом TemporalField.getFrom(TemporalAccessor) с аргументом this. Возможность получения значения и его смысл определяются самим полем.
- Указан в:
-
getв интерфейсеTemporalAccessor - Параметры:
-
field— поле, значение которого требуется получить, не null - Возвращает:
- значение поля в пределах допустимого диапазона значений
- Вызывает исключение:
-
DateTimeException— если невозможно получить значение поля или значение выходит за пределы допустимого диапазона значений поля -
UnsupportedTemporalTypeException— если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException— при числовом переполнении
getLong
public long getLong(TemporalField field)
long. Этот метод запрашивает значение указанного поля для данного месяца. Если невозможно вернуть значение, поскольку поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле — MONTH_OF_YEAR, возвращается значение месяца года от 1 до 12. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.
Если поле не является ChronoField, результат этого метода определяется вызовом TemporalField.getFrom(TemporalAccessor) с аргументом this. Возможность получения значения и его смысл определяются самим полем.
- Указан в:
-
getLongв интерфейсеTemporalAccessor - Параметры:
-
field— поле, значение которого требуется получить, не null - Возвращает:
- значение поля
- Вызывает исключение:
-
DateTimeException— если невозможно получить значение поля -
UnsupportedTemporalTypeException— если поле не поддерживается -
ArithmeticException— при числовом переполнении
plus
public Month plus(long months)
При вычислении выполняется переход через конец года — от декабря к январю. Указанный период может быть отрицательным.
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Параметры:
-
months— число месяцев для прибавления; может быть положительным или отрицательным - Возвращает:
- результирующий месяц, не null
minus
public Month minus(long months)
При вычислении выполняется переход через начало года — от января к декабрю. Указанный период может быть отрицательным.
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Параметры:
-
months— число месяцев для вычитания; может быть положительным или отрицательным - Возвращает:
- результирующий месяц, не null
length
public int length(boolean leapYear)
Флаг определяет, следует ли возвращать число дней для високосного года.
В феврале 28 дней в обычном году и 29 дней в високосном. В апреле, июне, сентябре и ноябре по 30 дней. Во всех остальных месяцах по 31 дню.
- Параметры:
-
leapYear— true, если требуется число дней для високосного года - Возвращает:
- число дней в этом месяце: от 28 до 31
minLength
public int minLength()
В феврале минимально 28 дней. В апреле, июне, сентябре и ноябре по 30 дней. Во всех остальных месяцах по 31 дню.
- Возвращает:
- минимальное число дней в этом месяце: от 28 до 31
maxLength
public int maxLength()
В феврале максимум 29 дней. В апреле, июне, сентябре и ноябре по 30 дней. Во всех остальных месяцах по 31 дню.
- Возвращает:
- максимальное число дней в этом месяце: от 29 до 31
firstDayOfYear
public int firstDayOfYear(boolean leapYear)
Возвращает день года, с которого начинается этот месяц; флаг високосного года используется для определения числа дней в феврале.
- Параметры:
-
leapYear— true, если требуется число дней для високосного года - Возвращает:
- номер дня года, соответствующий первому дню этого месяца: от 1 до 336
firstMonthOfQuarter
public Month firstMonthOfQuarter()
Год можно разделить на четыре квартала. Этот метод возвращает первый месяц квартала, к которому относится исходный месяц. Для января, февраля и марта возвращается январь. Для апреля, мая и июня возвращается апрель. Для июля, августа и сентября возвращается июль. Для октября, ноября и декабря возвращается октябрь.
- Возвращает:
- первый месяц квартала, соответствующего этому месяцу, не null
query
public <R> R query(TemporalQuery<R> query)
Этот метод выполняет запрос к этому месяцу года с помощью указанного объекта стратегии запроса. Объект TemporalQuery определяет логику получения результата. Чтобы понять, каким будет результат этого метода, ознакомьтесь с документацией запроса.
Результат этого метода получается вызовом метода TemporalQuery.queryFrom(TemporalAccessor) для указанного запроса с аргументом this.
- Указан в:
-
queryв интерфейсеTemporalAccessor - Параметры типа:
R— тип результата- Параметры:
-
query— вызываемый запрос, не null - Возвращает:
- результат запроса; может быть возвращено значение null (определяется запросом)
- Вызывает исключение:
-
DateTimeException— если выполнить запрос невозможно (определяется запросом) -
ArithmeticException— при числовом переполнении (определяется запросом)
adjustInto
public Temporal adjustInto(Temporal temporal)
Возвращает объект даты и времени того же наблюдаемого типа, что и входной объект, но с месяцем года, измененным на этот.
Изменение эквивалентно вызову Temporal.with(TemporalField, long) с полем ChronoField.MONTH_OF_YEAR. Если указанный объект даты и времени не использует календарную систему ISO, выбрасывается DateTimeException.
В большинстве случаев код будет понятнее, если изменить порядок вызова и использовать Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisMonth.adjustInto(temporal); temporal = temporal.with(thisMonth);
Например, если дана дата в мае, результат будет следующим:
dateInMay.with(JANUARY); // four months earlier dateInMay.with(APRIL); // one months earlier dateInMay.with(MAY); // same date dateInMay.with(JUNE); // one month later dateInMay.with(DECEMBER); // seven months later
Этот экземпляр неизменяем и не изменяется при вызове данного метода.
- Указан в:
-
adjustIntoв интерфейсеTemporalAdjuster - Параметры:
-
temporal— целевой объект для изменения, не null - Возвращает:
- измененный объект, не null
- Вызывает исключение:
-
DateTimeException— если выполнить изменение невозможно -
ArithmeticException— при числовом переполнении
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/Month.html