Spec-Zone.ru › OpenJDK 21

Класс YearMonth

java.lang.Object
java.time.YearMonth
Все реализованные интерфейсы:
Serializable, Comparable<YearMonth>, Temporal, TemporalAccessor, TemporalAdjuster
public final class YearMonth extends Object implements Temporal, TemporalAdjuster, Comparable<YearMonth>, Serializable
Год и месяц в системе календаря ISO-8601, например 2007-12.

YearMonth — это неизменяемый объект даты и времени, представляющий собой комбинацию года и месяца. Можно получить любые поля, которые могут быть вычислены из года и месяца, такие как квартал года.

Этот класс не хранит и не представляет день, время или часовой пояс. Например, значение "октябрь 2007 года" может быть сохранено в YearMonth.

Система календаря ISO-8601 — это современная гражданская система календаря, используемая сегодня в большинстве стран мира. Она эквивалентна пролептической системе григорианского календаря, в которой сегодняшние правила високосных лет применяются на все времена. Для большинства современных приложений правила ISO-8601 полностью подходят. Однако любое приложение, использующее исторические даты и требующее их точности, обнаружит, что подход ISO-8601 не подходит.

Это значение-базированный класс; программисты должны рассматривать экземпляры, которые являются равными, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущей версии синхронизация может не сработать. Для сравнения следует использовать метод equals.

Требования к реализации:
Этот класс неизменяем и потокобезопасен.
С:
1.8
См. также:
  • Формат сериализации

Краткое описание методов

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект так, чтобы он соответствовал этому году и месяцу.
LocalDate atDay(int dayOfMonth)
Комбинирует этот год и месяц с числом дня месяца, чтобы создать LocalDate.
LocalDate atEndOfMonth()
Возвращает LocalDate в конце месяца.
int compareTo(YearMonth other)
Сравнивает этот год и месяц с другим годом и месяцем.
boolean equals(Object obj)
Проверяет, равен ли этот год и месяц другому году и месяцу.
String format(DateTimeFormatter formatter)
Форматирует этот год и месяц с использованием указанного форматера.
static YearMonth from(TemporalAccessor temporal)
Получает экземпляр YearMonth из временного объекта.
int get(TemporalField field)
Получает значение указанного поля из этого года и месяца в виде int.
long getLong(TemporalField field)
Получает значение указанного поля из этого года и месяца в виде long.
Month getMonth()
Получает поле месяца года с использованием перечисления Month.
int getMonthValue()
Получает поле месяца года от 1 до 12.
int getYear()
Получает поле года.
int hashCode()
Хэш-код для этого года и месяца.
boolean isAfter(YearMonth other)
Проверяет, следует ли этот год и месяц после указанного года и месяца.
boolean isBefore(YearMonth other)
Проверяет, предшествует ли этот год и месяц указанному году и месяцу.
boolean isLeapYear()
Проверяет, является ли год високосным годом в соответствии с правилами пролептической системы календаря ISO.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный единица измерения.
boolean isValidDay(int dayOfMonth)
Проверяет, является ли число дня месяца допустимым для этого года и месяца.
int lengthOfMonth()
Возвращает длительность месяца, учитывая год.
int lengthOfYear()
Возвращает длительность года.
YearMonth minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого года и месяца с вычитанием указанной величины.
YearMonth minus(TemporalAmount amountToSubtract)
Возвращает копию этого года и месяца с вычитанием указанной величины.
YearMonth minusMonths(long monthsToSubtract)
Возвращает копию этого YearMonth с вычитанием указанного числа месяцев.
YearMonth minusYears(long yearsToSubtract)
Возвращает копию этого YearMonth с вычитанием указанного числа лет.
static YearMonth now()
Получает текущий год и месяц с системных часов в часовом поясе по умолчанию.
static YearMonth now(Clock clock)
Получает текущий год и месяц из указанных часов.
static YearMonth now(ZoneId zone)
Получает текущий год и месяц с системных часов в указанном часовом поясе.
static YearMonth of(int year, int month)
Получает экземпляр YearMonth из года и месяца.
static YearMonth of(int year, Month month)
Получает экземпляр YearMonth из года и месяца.
static YearMonth parse(CharSequence text)
Получает экземпляр YearMonth из текстовой строки, например 2007-12.
static YearMonth parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр YearMonth из текстовой строки с использованием определенного форматера.
YearMonth plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого года и месяца с добавлением указанной величины.
YearMonth plus(TemporalAmount amountToAdd)
Возвращает копию этого года и месяца с добавлением указанной величины.
YearMonth plusMonths(long monthsToAdd)
Возвращает копию этого YearMonth с добавлением указанного числа месяцев.
YearMonth plusYears(long yearsToAdd)
Возвращает копию этого YearMonth с добавлением указанного числа лет.
<R> R query(TemporalQuery<R> query)
Запрашивает этот год и месяц с использованием указанного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
String toString()
Выводит этот год и месяц как String, например 2007-12.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет количество времени до другого года и месяца в терминах указанной единицы измерения.
YearMonth with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого года и месяца.
YearMonth with(TemporalField field, long newValue)
Возвращает копию этого года и месяца с указанным полем, установленным в новое значение.
YearMonth withMonth(int month)
Возвращает копию этого YearMonth с измененным месяцем года.
YearMonth withYear(int year)
Возвращает копию этого YearMonth с измененным годом.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание методов

now

public static YearMonth now()
Получает текущий год-месяц из системных часов в часовом поясе по умолчанию.

Это запросит system clock в часовом поясе по умолчанию для получения текущего года-месяца.

Использование этого метода предотвратит возможность использования альтернационных часов для тестирования, так как часы жестко закодированы.

Возвращает:
текущий год-месяц с использованием системных часов и часового пояса по умолчанию, не null

now

public static YearMonth now(ZoneId zone)
Получает текущий год-месяц из системных часов в указанном часовом поясе.

Это запросит system clock для получения текущего года-месяца. Указание часового пояса предотвращает зависимость от часового пояса по умолчанию.

Использование этого метода предотвратит возможность использования альтернационных часов для тестирования, так как часы жестко закодированы.

Параметры:
zone - идентификатор часового пояса для использования, не null
Возвращает:
текущий год-месяц с использованием системных часов, не null

now

public static YearMonth now(Clock clock)
Получает текущий год-месяц из указанных часов.

Это запросит указанные часы для получения текущего года-месяца. Использование этого метода позволяет использовать альтернационные часы для тестирования. Альтернативные часы могут быть добавлены с помощью dependency injection.

Параметры:
clock - часы для использования, не null
Возвращает:
текущий год-месяц, не null

of

public static YearMonth of(int year, Month month)
Получает экземпляр YearMonth из года и месяца.
Параметры:
year - год для представления, от MIN_YEAR до MAX_YEAR
month - месяц для представления, не null
Возвращает:
год-месяц, не null
Исключения:
DateTimeException - если значение года некорректно

of

public static YearMonth of(int year, int month)
Получает экземпляр YearMonth из года и месяца.
Параметры:
year - год для представления, от MIN_YEAR до MAX_YEAR
month - месяц для представления, от 1 (январь) до 12 (декабрь)
Возвращает:
год-месяц, не null
Исключения:
DateTimeException - если значение любого поля некорректно

from

public static YearMonth from(TemporalAccessor temporal)
Получает экземпляр YearMonth из временного объекта.

Это получает год-месяц на основе указанного временного объекта. TemporalAccessor представляет произвольный набор информации о дате и времени, которую этот фабричный метод преобразует в экземпляр YearMonth.

Преобразование извлекает поля YEAR и MONTH_OF_YEAR. Извлечение разрешено только если временный объект имеет хронологию ISO или может быть преобразован в LocalDate.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, YearMonth::from.

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
год-месяц, не null
Исключения:
DateTimeException - если невозможно преобразовать в YearMonth

parse

public static YearMonth parse(CharSequence text)
Получает экземпляр YearMonth из текстовой строки, например, 2007-12.

Строка должна представлять допустимый год-месяц. Формат должен быть uuuu-MM. Года за пределами диапазона от 0000 до 9999 должны быть с префиксом плюса или минуса.

Параметры:
text - текст для разбора, например, "2007-12", не null
Возвращает:
разборный год-месяц, не null
Исключения:
DateTimeParseException - если текст не может быть разобран

parse

public static YearMonth parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр YearMonth из текстовой строки с использованием определенного форматера.

Текст анализируется с помощью форматера, возвращая год-месяц.

Параметры:
text - текст для разбора, не null
formatter - используемый форматер, не null
Возвращает:
разборный год-месяц, не null
Исключения:
DateTimeParseException - если текст не может быть разобран

isSupported

public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

Проверяет, может ли этот год-месяц быть запрошен для указанного поля. Если false, то вызов методов range, get и with(TemporalField, long) вызовет исключение.

Если поле является ChronoField, то запрос реализован здесь. Поддерживаемые поля:

  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
Все другие ChronoField экземпляры вернут false.

Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.isSupportedBy(TemporalAccessor) с this в качестве аргумента. Поддерживается ли поле определяется полем.

Определено в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки, null возвращает false
Возвращает:
true, если поле поддерживается этим годом-месяцем, false - если нет

isSupported

public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный интервал.

Проверяет, может ли указанный интервал быть добавлен к или вычтен из этого года-месяца. Если false, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.

Если интервал является ChronoUnit, то запрос реализован здесь. Поддерживаемые интервалы:

  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Все другие ChronoUnit экземпляры вернут false.

Если интервал не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.isSupportedBy(Temporal) с this в качестве аргумента. Поддерживается ли интервал определяется интервалом.

Определено в:
isSupported в интерфейсе Temporal
Параметры:
unit - интервал для проверки, null возвращает false
Возвращает:
true, если интервал может быть добавлен/вычтен, false - если нет

range

public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Этот год-месяц используется для повышения точности возвращаемого диапазона. Если вернуть диапазон невозможно, потому что поле не поддерживается или по другой причине, выбрасывается исключение.

Если поле является ChronoField, то запрос реализован здесь. supported fields вернет соответствующие экземпляры диапазона. Все другие ChronoField экземпляры выбросят исключение UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.rangeRefinedBy(TemporalAccessor) с this в качестве аргумента. Возможен ли запрос диапазона определяется полем.

Определено в:
range в интерфейсе TemporalAccessor
Параметры:
field - поле, для которого запрашивается диапазон, не null
Возвращает:
диапазон допустимых значений для поля, не null
Исключения:
DateTimeException - если диапазон для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается

get

public int get(TemporalField field)
Получает значение указанного поля из этого года-месяца как int.

Запрашивает значение указанного поля в этом году-месяце. Возвращаемое значение всегда будет находиться в допустимом диапазоне значений для поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт допустимые значения на основе этого года-месяца, за исключением PROLEPTIC_MONTH, которое слишком велико для размещения в int и вызовет DateTimeException. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.

Указано в:
get в интерфейсе TemporalAccessor
Параметры:
field - поле для получения, не null
Возвращает:
значение для поля
Исключение:
DateTimeException - если значение для поля получить невозможно или значение находится вне диапазона допустимых значений для поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - если возникает переполнение при вычислении

getLong

public long getLong(TemporalField field)
Получает значение указанного поля из этого года-месяца как long.

Запрашивает значение указанного поля в этом году-месяце. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт допустимые значения на основе этого года-месяца. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.

Указано в:
getLong в интерфейсе TemporalAccessor
Параметры:
field - поле для получения, не null
Возвращает:
значение для поля
Исключение:
DateTimeException - если значение для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение при вычислении

getYear

public int getYear()
Получает поле год.

Этот метод возвращает примитивное значение int для года.

Год, возвращаемый этим методом, является пролептическим в соответствии с get(YEAR).

Возвращает:
год, от MIN_YEAR до MAX_YEAR

getMonthValue

public int getMonthValue()
Получает поле месяц года от 1 до 12.

Этот метод возвращает месяц как int от 1 до 12. Код приложения часто становится понятнее, если используется перечисление Month вызывая getMonth().

Возвращает:
месяц года, от 1 до 12
См. также:
  • getMonth()

getMonth

public Month getMonth()
Получает поле месяц года, используя перечисление Month.

Этот метод возвращает перечисление Month для месяца. Это предотвращает путаницу в том, что означают int значения. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.

Возвращает:
месяц года, не null
См. также:
  • getMonthValue()

isLeapYear

public boolean isLeapYear()
Проверяет, является ли год високосным годом в соответствии с правилами системы ISO пролептического календаря.

Этот метод применяет текущие правила для високосных годов на всей временной шкале. Как правило, год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосным, за исключением годов, делящихся на 400, которые таковыми являются.

Например, 1904 год является високосным, так как делится на 4. 1900 год не был високосным, так как делится на 100, однако 2000 год был високосным, так как делится на 400.

Вычисление является пролептическим - оно применяет те же правила в далёком будущем и далёком прошлом. Это исторически неточно, но верно для стандарта ISO-8601.

Возвращает:
true, если год високосный, false в противном случае

isValidDay

public boolean isValidDay(int dayOfMonth)
Проверяет, является ли день месяца допустимым для этого года-месяца.

Этот метод проверяет, образуют ли этот год, месяц и введённый день допустимую дату.

Параметры:
dayOfMonth - день месяца для проверки, от 1 до 31, недопустимое значение возвращает false
Возвращает:
true, если день допустим для этого года-месяца

lengthOfMonth

public int lengthOfMonth()
Возвращает длительность месяца, учитывая год.

Возвращает длительность месяца в днях. Например, дата в январе вернёт 31.

Возвращает:
длительность месяца в днях, от 28 до 31

lengthOfYear

public int lengthOfYear()
Возвращает длительность года.

Возвращает длительность года в днях, либо 365, либо 366.

Возвращает:
366, если год високосный, 365 в противном случае

with

public YearMonth with(TemporalAdjuster adjuster)
Возвращает скопированную копию этого года-месяца с корректировкой.

Возвращает YearMonth, на основе этого, с корректировкой года-месяца. Корректировка выполняется с помощью указанной стратегии корректировки. Прочитайте документацию корректировщика, чтобы понять, какая корректировка будет выполнена.

Простая корректировка может просто установить одно из полей, например, поле год. Более сложная корректировка может установить год-месяц на следующий месяц, когда комета Галлея пройдёт мимо Земли.

Результат этого метода получается путём вызова метода TemporalAdjuster.adjustInto(Temporal) указанного корректировщика, передавая this в качестве аргумента.

Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.

Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - корректировщик для использования, не null
Возвращает:
a YearMonth на основе this с выполненной корректировкой, не null
Исключение:
DateTimeException - если корректировка не может быть выполнена
ArithmeticException - если происходит переполнение при вычислении

with

public YearMonth with(TemporalField field, long newValue)
Возвращает копию этого года-месяца с указанным полем, установленным в новое значение.

Возвращает YearMonth, на основе этого, с изменённым значением для указанного поля. Это можно использовать для изменения любого поддерживаемого поля, такого как год или месяц. Если невозможно установить значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, то корректировка реализуется здесь. Поддерживаемые поля ведут себя следующим образом:

  • MONTH_OF_YEAR - Возвращает YearMonth с указанным месяцем года. Год останется без изменений.
  • PROLEPTIC_MONTH - Возвращает YearMonth с указанным пролептическим месяцем. Это полностью заменяет год и месяц этого объекта.
  • YEAR_OF_ERA - Возвращает YearMonth с указанным годом эры. Месяц и эра останутся без изменений.
  • YEAR - Возвращает YearMonth с указанным годом. Месяц останется без изменений.
  • ERA - Возвращает YearMonth с указанной эрой. Месяц и год эры останутся без изменений.

Во всех случаях, если новое значение выходит за допустимый диапазон значений для поля, будет выброшено DateTimeException.

Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.adjustInto(Temporal, long), передавая this в качестве аргумента. В этом случае поле определяет, как и нужно ли корректировать момент.

Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.

Указано в:
with в интерфейсе Temporal
Параметры:
field - поле для установки в результат, не null
newValue - новое значение поля в результате
Возвращает:
a YearMonth на основе this с установленным указанным полем, не null
Исключение:
DateTimeException - если поле нельзя установить
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение при вычислении

с годом

public YearMonth withYear(int year)
Возвращает копию этого YearMonth с изменённым годом.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Параметры:
year - год для установки в возвращаемый год-месяц, от MIN_YEAR до MAX_YEAR
Возвращает:
год-месяц на основе этого года-месяца с запрошенным годом, не null
Исключения:
DateTimeException - если значение года недействительно

с месяцем

public YearMonth withMonth(int month)
Возвращает копию этого YearMonth с изменённым месяцем года.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Параметры:
month - месяц года для установки в возвращаемый год-месяц, от 1 (января) до 12 (декабря)
Возвращает:
год-месяц на основе этого года-месяца с запрошенным месяцем, не null
Исключения:
DateTimeException - если значение месяца года недействительно

плюс

public YearMonth plus(TemporalAmount amountToAdd)
Возвращает копию этого года-месяца с добавленным указанным значением.

Это возвращает YearMonth, на основе этого, с добавленным указанным значением. Значение обычно представляет собой Period, но может быть любым другим типом, реализующим интерфейс TemporalAmount.

Вычисление делегируется объекту значения вызовом TemporalAmount.addTo(Temporal). Реализация значения свободна реализовывать добавление любым способом, однако обычно она вызывает plus(long, TemporalUnit). Обратитесь к документации реализации значения, чтобы определить, можно ли его успешно добавить.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - значение для добавления, не null
Возвращает:
год-месяц на основе этого года-месяца с произведённым добавлением, не null
Исключения:
DateTimeException - если добавление невозможно
ArithmeticException - если происходит переполнение числового значения

плюс

public YearMonth plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого года-месяца с добавленным указанным значением.

Это возвращает YearMonth, на основе этого, со значением в терминах добавленной единицы измерения. Если добавление значения невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, генерируется исключение.

Если поле является ChronoUnit, то добавление реализуется здесь. Поддерживаемые поля ведут себя следующим образом:

  • MONTHS - Возвращает YearMonth с добавленным указанным количеством месяцев. Эквивалентно plusMonths(long).
  • YEARS - Возвращает YearMonth с добавленным указанным количеством лет. Эквивалентно plusYears(long).
  • DECADES - Возвращает YearMonth с добавленным указанным количеством десятилетий. Эквивалентно вызову plusYears(long) со значением, умноженным на 10.
  • CENTURIES - Возвращает YearMonth с добавленным указанным количеством столетий. Эквивалентно вызову plusYears(long) со значением, умноженным на 100.
  • MILLENNIA - Возвращает YearMonth с добавленным указанным количеством тысячелетий. Эквивалентно вызову plusYears(long) со значением, умноженным на 1000.
  • ERAS - Возвращает YearMonth с добавленным указанным количеством эр. Поддерживаются только две эры, поэтому значение должно быть равно единице, нулю или минус единице. Если значение отлично от нуля, то год изменяется так, что год эры остается неизменным.

Все остальные ChronoUnit экземпляры сгенерируют UnsupportedTemporalTypeException.

Если поле не является ChronoUnit, результат этого метода получается путём вызова TemporalUnit.addTo(Temporal, long) с передачей this в качестве аргумента. В этом случае единица измерения определяет, как и следует ли выполнять добавление.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - количество единицы измерения для добавления к результату, может быть отрицательным
unit - единица измерения значения для добавления, не null
Возвращает:
год-месяц на основе этого года-месяца с добавленным указанным значением, не null
Исключения:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числового значения

плюс лет

public YearMonth plusYears(long yearsToAdd)
Возвращает копию этого YearMonth с добавленным указанным количеством лет.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Параметры:
yearsToAdd - количество лет для добавления, может быть отрицательным
Возвращает:
год-месяц на основе этого года-месяца с добавленными годами, не null
Исключения:
DateTimeException - если результат выходит за поддерживаемый диапазон

плюс месяцев

public YearMonth plusMonths(long monthsToAdd)
Возвращает копию этого YearMonth с добавленным указанным количеством месяцев.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Параметры:
monthsToAdd - количество месяцев для добавления, может быть отрицательным
Возвращает:
год-месяц на основе этого года-месяца с добавленными месяцами, не null
Исключения:
DateTimeException - если результат выходит за поддерживаемый диапазон

минус

public YearMonth minus(TemporalAmount amountToSubtract)
Возвращает копию этого года-месяца с вычтенным указанным значением.

Это возвращает YearMonth, на основе этого, с вычтенным указанным значением. Значение обычно представляет собой Period, но может быть любым другим типом, реализующим интерфейс TemporalAmount.

Вычисление делегируется объекту значения вызовом TemporalAmount.subtractFrom(Temporal). Реализация значения свободна реализовывать вычитание любым способом, однако обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации значения, чтобы определить, можно ли его успешно вычесть.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - значение для вычитания, не null
Возвращает:
год-месяц на основе этого года-месяца с произведённым вычитанием, не null
Исключения:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение числового значения

минус

public YearMonth minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого года-месяца с вычтенным указанным значением.

Это возвращает YearMonth, на основе этого, со значением в терминах вычтенной единицы измерения. Если вычитание значения невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, генерируется исключение.

Этот метод эквивалентен plus(long, TemporalUnit) со значением, умноженным на -1. Обратитесь к этому методу для полного описания того, как работает добавление, а, следовательно, и вычитание.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - количество единицы измерения для вычитания из результата, может быть отрицательным
unit - единица измерения значения для вычитания, не null
Возвращает:
год-месяц на основе этого года-месяца с вычтенным указанным значением, не null
Исключения:
DateTimeException - если вычитание невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числового значения

минус лет

public YearMonth minusYears(long yearsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством лет.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Параметры:
yearsToSubtract - количество лет для вычитания, может быть отрицательным
Возвращает:
год-месяц на основе этого года-месяца с вычтенными годами, не null
Исключения:
DateTimeException - если результат выходит за поддерживаемый диапазон

минус месяцев

public YearMonth minusMonths(long monthsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством месяцев.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Параметры:
monthsToSubtract - количество месяцев для вычитания, может быть отрицательным
Возвращает:
год-месяц на основе этого года-месяца с вычтенными месяцами, не null
Исключения:
DateTimeException - если результат выходит за поддерживаемый диапазон

запрос

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.PROLEPTIC_MONTH в качестве поля. Если указанный временной объект не использует систему календаря ISO, то выбрасывается DateTimeException.

В большинстве случаев более понятно использовать обратный порядок вызова, используя Temporal.with(TemporalAdjuster):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisYearMonth.adjustInto(temporal);
   temporal = temporal.with(thisYearMonth);
 

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Указано:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для корректировки, не null
Возвращает:
скорректированный объект, не null
Бросает:
DateTimeException - если корректировка невозможна
ArithmeticException - если происходит переполнение чисел

до

public long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет количество времени до другого года-месяца в терминах указанной единицы измерения.

Это вычисляет количество времени между двумя объектами YearMonth в терминах одной единицы TemporalUnit. Начальная и конечная точки — this и указанный год-месяц. Результат будет отрицательным, если конец находится до начала. Temporal передаваемый в этот метод, преобразуется в YearMonth с помощью from(TemporalAccessor). Например, количество лет между двумя годами-месяцами можно вычислить, используя startYearMonth.until(endYearMonth, YEARS).

Вычисление возвращает целое число, представляющее количество полных единиц между двумя годами-месяцами. Например, количество десятилетий между 2012-06 и 2032-05 составит только одно десятилетие, так как это на один месяц меньше двух десятилетий.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

   // these two lines are equivalent
   amount = start.until(end, MONTHS);
   amount = MONTHS.between(start, end);
 
Выбор должен быть сделан на основе того, что делает код более читабельным.

Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие значения ChronoUnit приведут к ошибке.

Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal) с передачей this в качестве первого аргумента и преобразованного входного временного объекта как второго аргумента.

Этот экземпляр неизменяемый и не изменяется этим вызовом метода.

Указано:
until в интерфейсе Temporal
Параметры:
endExclusive - конечная дата, исключающая, которая преобразуется в YearMonth, не null
unit - единица измерения, не null
Возвращает:
количество времени между этим годом-месяцем и конечным годом-месяцем
Бросает:
DateTimeException - если количество не может быть вычислено или конечный временной объект не может быть преобразован в YearMonth
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение чисел

формат

public String format(DateTimeFormatter formatter)
Форматирует этот год-месяц, используя указанный форматировщик.

Этот год-месяц будет передан форматировщику для создания строки.

Параметры:
formatter - используемый форматировщик, не null
Возвращает:
строка отформатированного года-месяца, не null
Бросает:
DateTimeException - если при печати произошла ошибка

atDay

public LocalDate atDay(int dayOfMonth)
Комбинирует этот год-месяц со днем месяца, чтобы создать LocalDate.

Это возвращает LocalDate, образованный из этого года-месяца и указанного дня месяца.

Значение дня месяца должно быть допустимым для года-месяца.

Этот метод может быть использован в цепочке для создания даты:

  LocalDate date = year.atMonth(month).atDay(day);
 
Параметры:
dayOfMonth - используемый день месяца, от 1 до 31
Возвращает:
дата, образованная из этого года-месяца и указанного дня, не null
Бросает:
DateTimeException - если день не является допустимым для года-месяца
См. также:
  • isValidDay(int)

atEndOfMonth

public LocalDate atEndOfMonth()
Возвращает LocalDate в конце месяца.

Это возвращает LocalDate на основе этого года-месяца. День месяца устанавливается на последний допустимый день месяца, с учетом високосных лет.

Этот метод может быть использован в цепочке для создания даты:

  LocalDate date = year.atMonth(month).atEndOfMonth();
 
Возвращает:
последняя допустимая дата этого года-месяца, не null

compareTo

public int compareTo(YearMonth other)
Сравнивает этот год-месяц с другим годом-месяцем.

Сравнение основано сначала на значении года, затем на значении месяца. Оно «согласуется с equals», как определено в Comparable.

Указано:
compareTo в интерфейсе Comparable<YearMonth>
Параметры:
other - другой год-месяц для сравнения, не null
Возвращает:
значение компаратора, которое меньше нуля, если это раньше other, ноль, если они равны, больше нуля, если это после other
См. также:
  • isBefore(java.time.YearMonth)
  • isAfter(java.time.YearMonth)

isAfter

public boolean isAfter(YearMonth other)
Проверяет, является ли этот год-месяц после указанного года-месяца.
Параметры:
other - другой год-месяц для сравнения, не null
Возвращает:
true, если это после указанного года-месяца

isBefore

public boolean isBefore(YearMonth other)
Проверяет, является ли этот год-месяц до указанного года-месяца.
Параметры:
other - другой год-месяц для сравнения, не null
Возвращает:
true, если этот момент до указанного года-месяца

equals

public boolean equals(Object obj)
Проверяет, равен ли этот год-месяц другому году-месяцу.

Сравнение основано на временном положении года-месяца.

Переопределяет:
equals в классе Object
Параметры:
obj - проверяемый объект, null возвращает false
Возвращает:
true, если этот год-месяц равен другому году-месяцу
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код для этого года-месяца.
Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Выводит этот год-месяц как String, например, 2007-12.

Вывод будет в формате uuuu-MM:

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого года-месяца, не null

© 1993, 2023, 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/21/docs/api/java.base/java/time/YearMonth.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API