Класс HijrahDate

Все реализованные интерфейсы:
Serializable, Comparable<ChronoLocalDate>, ChronoLocalDate, Temporal, TemporalAccessor, TemporalAdjuster
public final class HijrahDate
extends Object
implements ChronoLocalDate, Serializable

Дата в системе календаря Хиджры.

Эта дата работает с одной из нескольких разновидностей календаря Хиджры.

Календарь Хиджры имеет другое общее количество дней в году, чем григорианский календарь, а продолжительность каждого месяца основана на периоде полного оборота Луны вокруг Земли (между последовательными новолуниями). Подробности поддерживаемых вариантов см. в HijrahChronology.

Каждый HijrahDate создается, привязанный к определённому HijrahChronology. Такая же хронология передаётся каждому HijrahDate, вычисленному из даты. Чтобы использовать другую разновидность Хиджры, её HijrahChronology можно использовать для создания новых экземпляров HijrahDate. В качестве альтернативы можно использовать метод withVariant(java.time.chrono.HijrahChronology) для преобразования в новую HijrahChronology.

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

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

Методы

Модификатор и тип Метод Описание
boolean equals​(Object obj)

Сравнивает эту дату с другой датой, включая хронологию.

static HijrahDate from​(TemporalAccessor temporal)

Получает HijrahDate исламского календаря Умм аль-Кура из временного объекта.

HijrahChronology getChronology()

Получает хронологию этой даты, которая представляет собой систему календаря Хиджры.

HijrahEra getEra()

Получает эру, применимую в этой дате.

int hashCode()

Хэш-код для этой даты.

boolean isLeapYear()

Проверяет, является ли год високосным годом согласно правилам системы календаря Хиджры.

int lengthOfMonth()

Возвращает длительность месяца, представленного этой датой.

int lengthOfYear()

Возвращает длительность года, представленного этой датой.

HijrahDate minus​(TemporalAmount amount)

Возвращает объект того же типа, что и этот объект, с вычтенным значением.

static HijrahDate now()

Получает текущую HijrahDate исламского календаря Умм аль-Кура в часовом поясе по умолчанию.

static HijrahDate now​(Clock clock)

Получает текущую HijrahDate исламского календаря Умм аль-Кура из указанного объекта часов.

static HijrahDate now​(ZoneId zone)

Получает текущую HijrahDate исламского календаря Умм аль-Кура в указанном часовом поясе.

static HijrahDate of​(int prolepticYear, int month, int dayOfMonth)

Получает HijrahDate исламского календаря Умм аль-Кура из пролептического года, месяца и дня месяца.

HijrahDate plus​(TemporalAmount amount)

Возвращает объект того же типа, что и этот объект, с добавленным значением.

String toString()

Возвращает строковое представление объекта.

long until​(Temporal endExclusive, TemporalUnit unit)

Вычисляет время до другой даты в указанных единицах измерения.

HijrahDate with​(TemporalAdjuster adjuster)

Возвращает скорректированный объект того же типа, что и этот объект, с произведённой корректировкой.

HijrahDate withVariant​(HijrahChronology chronology)

Возвращает HijrahDate с запрошенной хронологией.

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

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

Методы, объявленные в интерфейсе java.time.chrono.ChronoLocalDate

adjustInto, atTime, compareTo, format, isAfter, isBefore, isEqual, isSupported, isSupported, minus, plus, query, toEpochDay, toString, until, until, with

Методы, объявленные в интерфейсе java.time.temporal.TemporalAccessor

get, getLong, range

Методы

now

public static HijrahDate now()

Получает текущую HijrahDate исламского календаря Умм аль-Кура в часовом поясе по умолчанию.

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

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

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

now

public static HijrahDate now(ZoneId zone)

Получает текущую HijrahDate исламского календаря Умм аль-Кура в указанном часовом поясе.

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

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

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

now

public static HijrahDate now(Clock clock)

Получает текущую HijrahDate исламского календаря Умм аль-Кура из указанных часов.

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

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

of

public static HijrahDate of(int prolepticYear,
                            int month,
                            int dayOfMonth)

Получает HijrahDate исламского календаря Умм аль-Кура из полей пролептического года, месяца года и дня месяца.

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

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

from

public static HijrahDate from(TemporalAccessor temporal)

Получает HijrahDate исламского календаря Умм аль-Кура из временного объекта.

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

Преобразование обычно использует поле EPOCH_DAY, которое стандартизовано во всех системах календарей.

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

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
дату в системе календаря Хиджры, не null
Исключения:
DateTimeException - если невозможно преобразовать в HijrahDate
См. также:
Chronology.date(TemporalAccessor)

getChronology

public HijrahChronology getChronology()

Получает хронологию этой даты, которая является системой календаря Хиджры.

Chronology представляет используемую систему календаря. Эра и другие поля в ChronoField определяются хронологией.

Указано в:
getChronology в интерфейсе ChronoLocalDate
Возвращает:
хронологию Хиджры, не null

getEra

public HijrahEra getEra()

Получает эру, применимую к этой дате.

Система календаря Хиджры имеет одну эру, 'AH', определенную в HijrahEra.

Указано в:
getEra в интерфейсе ChronoLocalDate
Возвращает:
эра, применимая к этой дате, не null

lengthOfMonth

public int lengthOfMonth()

Возвращает длину месяца, представленного этой датой.

Это возвращает длину месяца в днях. Длины месяцев в системе календаря Хиджры варьируются от 29 до 30 дней.

Указано в:
lengthOfMonth в интерфейсе ChronoLocalDate
Возвращает:
длину месяца в днях

lengthOfYear

public int lengthOfYear()

Возвращает длину года, представленного этой датой.

Это возвращает длину года в днях. Год в системе календаря Хиджры обычно короче, чем в системе календаря ISO.

Указано в:
lengthOfYear в интерфейсе ChronoLocalDate
Возвращает:
длину года в днях

with

public HijrahDate with(TemporalAdjuster adjuster)

Возвращает скорректированный объект того же типа, что и этот объект, с внесенной корректировкой.

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

Пример кода, показывающий, как и почему используется этот метод:

date = date.with(Month.JULY);        // most key classes implement TemporalAdjuster
  date = date.with(lastDayOfMonth());  // static import from Adjusters
  date = date.with(next(WEDNESDAY));   // static import from Adjusters and DayOfWeek
Указано в:
with в интерфейсе ChronoLocalDate
Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - используемый корректировщик, не null
Возвращает:
объект того же типа с внесенной указанной корректировкой, не null
Исключения:
DateTimeException - если корректировку внести невозможно. Например, если корректировщик требует хронологии ISO
ArithmeticException - если происходит переполнение при арифметических операциях

withVariant

public HijrahDate withVariant(HijrahChronology chronology)

Возвращает HijrahDate с запрошенной хронологией.

Год, месяц и день проверяются на соответствие новой запрошенной HijrahChronology. Если хронология имеет более короткую длину месяца для месяца, день уменьшается до последнего дня месяца.

Параметры:
chronology - новая HijrahChonology, не null
Возвращает:
HijrahDate с запрошенной HijrahChronology, не null

plus

public HijrahDate plus(TemporalAmount amount)

Возвращает объект того же типа, что и этот объект, с добавленным значением.

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

Пример кода, показывающий, как и почему используется этот метод:

date = date.plus(period);                // add a Period instance
  date = date.plus(duration);              // add a Duration instance
  date = date.plus(workingDays(6));        // example user-written workingDays method

Обратите внимание, что вызов plus с последующим вызовом minus не гарантирует возвращение той же даты и времени.

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

minus

public HijrahDate minus(TemporalAmount amount)

Возвращает объект того же типа, что и этот объект, с вычтенным значением.

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

Пример кода, показывающий, как и почему используется этот метод:

date = date.minus(period);               // subtract a Period instance
  date = date.minus(duration);             // subtract a Duration instance
  date = date.minus(workingDays(6));       // example user-written workingDays method

Обратите внимание, что вызов plus с последующим вызовом minus не гарантирует возвращение той же даты и времени.

Указано в:
minus в интерфейсе ChronoLocalDate
Указано в:
minus в интерфейсе Temporal
Параметры:
amount - значение для вычитания, не null
Возвращает:
объект того же типа с внесенной указанной корректировкой, не null
Исключения:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение при арифметических операциях

isLeapYear

public boolean isLeapYear()

Проверяет, является ли год високосным, согласно правилам системы календаря Хиджры.

Указано в:
isLeapYear в интерфейсе ChronoLocalDate
Возвращает:
true, если эта дата находится в високосный год

equals

public boolean equals(Object obj)

Сравнивает эту дату с другой датой, включая хронологию.

Сравнивает этот HijrahDate с другим, гарантируя, что дата одинакова.

Сравниваются только объекты типа HijrahDate, другие типы возвращают false. Для сравнения дат двух экземпляров TemporalAccessor, включая даты в двух разных хронологиях, используйте ChronoField.EPOCH_DAY в качестве компаратора.

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

hashCode

public int hashCode()

Код хеширования для этой даты.

Указано:
hashCode в интерфейсе ChronoLocalDate
Возвращает:
соответствующий код хеширования, основанный только на хронологии и дате
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

until

public long until(Temporal endExclusive,
                  TemporalUnit unit)

Описание скопировано из интерфейса: ChronoLocalDate

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

Это вычисляет продолжительность времени между двумя объектами ChronoLocalDate в терминах одной единицы TemporalUnit. Начальной и конечной точками являются this и указанная дата. Результат будет отрицательным, если конечная дата предшествует начальной. Temporal , переданные в этот метод, преобразуются в ChronoLocalDate с помощью Chronology.date(TemporalAccessor). Вычисление возвращает целое число, представляющее количество полных единиц между двумя датами. Например, количество дней между двумя датами можно рассчитать с помощью startDate.until(endDate, DAYS).

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

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

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

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

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

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

toString

public String toString()

Описание скопировано из класса: Object

Возвращает строковое представление объекта. В общем случае, метод toString возвращает строку, которая «текстово представляет» этот объект. Результат должен быть кратким, но информативным представлением, удобным для чтения человеком. Рекомендуется всем подклассам переопределить этот метод.

Метод toString для класса Object возвращает строку, состоящую из имени класса, к которому относится объект, символа «@» `@', и неозначенного шестнадцатеричного представления кода хеширования объекта. Другими словами, этот метод возвращает строку, равную значению:

getClass().getName() + '@' + Integer.toHexString(hashCode())
Указано:
toString в интерфейсе ChronoLocalDate
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

© 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/chrono/HijrahDate.html

Spec-Zone .ru
спецификации, руководства, описания, API