Перечисление 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
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum
Enum.EnumDesc<E extends Enum<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 в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.
- Specified by:
-
getв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение поля, находящееся в допустимом диапазоне значений
- Throws:
-
DateTimeException- если значение для поля получить невозможно или значение находится вне допустимого диапазона для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если происходит переполнение числовых значений
getLong
public long getLong(TemporalField field)
long. Этот запрос получает значение указанного поля для данного месяца. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является MONTH_OF_YEAR, то будет возвращено значение месяца года от 1 до 12. Все остальные ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor), передав this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.
- Specified by:
-
getLongв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение для поля
- Throws:
-
DateTimeException- если значение для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числовых значений
plus
public Month plus(long months)
Вычисление переходит с декабря к январю в конце года. Указанный период может быть отрицательным.
Этот экземпляр неизменяем и не изменяется этим методом.
- Parameters:
-
months- количество месяцев для добавления, положительное или отрицательное - Returns:
- результирующий месяц, не null
minus
public Month minus(long months)
Вычисление переходит с января к декабрю в начале года. Указанный период может быть отрицательным.
Этот экземпляр неизменяем и не изменяется этим методом.
- Parameters:
-
months- количество месяцев для вычитания, положительное или отрицательное - Returns:
- результирующий месяц, не null
length
public int length(boolean leapYear)
Принимает флаг для определения, нужно ли вернуть длину для високосного года или нет.
Февраль имеет 28 дней в стандартном году и 29 дней в високосном. Апрель, июнь, сентябрь и ноябрь имеют 30 дней. Все остальные месяцы имеют 31 день.
- Parameters:
-
leapYear- true, если длина требуется для високосного года - Returns:
- длина этого месяца в днях, от 28 до 31
minLength
public int minLength()
Февраль имеет минимальную длину 28 дней. Апрель, июнь, сентябрь и ноябрь имеют 30 дней. Все остальные месяцы имеют 31 день.
- Returns:
- минимальная длина этого месяца в днях, от 28 до 31
maxLength
public int maxLength()
Февраль имеет максимальную длину 29 дней. Апрель, июнь, сентябрь и ноябрь имеют 30 дней. Все остальные месяцы имеют 31 день.
- Returns:
- максимальная длина этого месяца в днях, от 29 до 31
firstDayOfYear
public int firstDayOfYear(boolean leapYear)
Возвращает день года, с которого начинается этот месяц, используя флаг високосного года для определения длины февраля.
- Parameters:
-
leapYear- true, если длина требуется для високосного года - Returns:
- день года, соответствующий первому дню этого месяца, от 1 до 336
firstMonthOfQuarter
public Month firstMonthOfQuarter()
Год можно разделить на четыре квартала. Этот метод возвращает первый месяц квартала для базового месяца. Январь, февраль и март возвращают январь. Апрель, май и июнь возвращают апрель. Июль, август и сентябрь возвращают июль. Октябрь, ноябрь и декабрь возвращают октябрь.
- Returns:
- первый месяц квартала, соответствующий этому месяцу, не null
query
public <R> R query(TemporalQuery<R> query)
Запрашивает этот месяц года, используя указанную стратегию запроса. Объект TemporalQuery определяет логику, используемую для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передав this в качестве аргумента.
- Specified by:
-
queryв интерфейсеTemporalAccessor - Type Parameters:
R- тип результата- Parameters:
-
query- запрос для вызова, не null - Returns:
- результат запроса, может быть null (определяется запросом)
- Throws:
-
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
Этот экземпляр неизменяем и не изменяется этим методом.
- Specified by:
-
adjustIntoв интерфейсеTemporalAdjuster - Parameters:
-
temporal- целевой объект для настройки, не null - Returns:
- настроенный объект, не null
- Throws:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/Month.html