Перечисление Month
- java.lang.Object
-
- java.lang.Enum<Month>
-
- java.time.Month
- Все реализуемые интерфейсы:
-
Serializable,Comparable<Month>,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
Постоянные значения перечисления
| Постоянное значение перечисления | Описание |
|---|---|
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(Temporal temporal) | Настраивает указанный временной объект так, чтобы он имел этот месяц года. |
int | firstDayOfYear(boolean leapYear) | Получает день года, соответствующий первому дню этого месяца. |
Month | firstMonthOfQuarter() | Получает месяц, соответствующий первому месяцу этого квартала. |
static Month | from(TemporalAccessor temporal) | Получает экземпляр |
int | get(TemporalField field) | Получает значение указанного поля из этого месяца года как |
String | getDisplayName(TextStyle style,
Locale locale) | Получает текстовое представление, например, 'янв' или 'декабрь'. |
long | getLong(TemporalField field) | Получает значение указанного поля из этого месяца года как |
int | getValue() | Получает значение месяца года |
boolean | isSupported(TemporalField field) | Проверяет, поддерживается ли указанное поле. |
int | length(boolean leapYear) | Получает длину этого месяца в днях. |
int | maxLength() | Получает максимальную длину этого месяца в днях. |
int | minLength() | Получает минимальную длину этого месяца в днях. |
Month | minus(long months) | Возвращает месяц года, который предшествует этому на указанное количество месяцев. |
static Month | of(int month) | Получает экземпляр |
Month | plus(long months) | Возвращает месяц года, который следует за этим на указанное количество месяцев. |
<R> R | query(TemporalQuery<R> query) | Запрашивает этот месяц года с использованием указанного запроса. |
ValueRange | range(TemporalField field) | Получает диапазон допустимых значений для указанного поля. |
static Month | valueOf(String name) | Возвращает константу перечисления этого типа с указанным именем. |
static Month[] | values() | Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. |
Методы, объявленные в классе java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf Методы, объявленные в классе java.lang.Object
getClass, notify, notifyAll, wait, wait, wait Подробное описание постоянных значений перечисления
Январь
public static final Month JANUARY
Единственный экземпляр для месяца января с 31 днем. У него есть числовое значение 1.
Февраль
public static final Month FEBRUARY
Единственный экземпляр для месяца февраля с 28 днями или 29 в високосном году. У него есть числовое значение 2.
Март
public static final Month MARCH
Единственный экземпляр для месяца марта с 31 днем. У него есть числовое значение 3.
Апрель
public static final Month APRIL
Единственный экземпляр для месяца апреля с 30 днями. У него есть числовое значение 4.
Май
public static final Month MAY
Единственный экземпляр для месяца мая с 31 днем. У него есть числовое значение 5.
Июнь
public static final Month JUNE
Единственный экземпляр для месяца июня с 30 днями. У него есть числовое значение 6.
Июль
public static final Month JULY
Единственный экземпляр для месяца июля с 31 днем. У него есть числовое значение 7.
Август
public static final Month AUGUST
Единственный экземпляр для месяца августа с 31 днем. У него есть числовое значение 8.
Сентябрь
public static final Month SEPTEMBER
Единственный экземпляр для месяца сентября с 30 днями. У него есть числовое значение 9.
Октябрь
public static final Month OCTOBER
Единственный экземпляр для месяца октября с 31 днем. У него есть числовое значение 10.
Ноябрь
public static final Month NOVEMBER
Единственный экземпляр для месяца ноября с 30 днями. У него есть числовое значение 11.
Декабрь
public static final Month DECEMBER
Единственный экземпляр для месяца декабря с 31 днем. У него есть числовое значение 12.
Методы
values
public static Month[] values()
Возвращает массив, содержащий константы этого перечисляемого типа в порядке их объявления. Этот метод может использоваться для итерации по константам следующим образом:
for (Month c : Month.values()) System.out.println(c);
- Возвращает:
- массив, содержащий константы этого перечисляемого типа в порядке их объявления
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, 2020, 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/11/docs/api/java.base/java/time/Month.html