Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Period extends Object implements TemporalAmount, Serializable
Этот class моделирует количество или количество времени с точки зрения лет, месяцев и дней. См. Duration
для основанного на времени эквивалента этому class.
Продолжительности и период отличаются по их обработке летнего времени когда добавлено к ZonedDateTime
. A Duration
добавит точное число секунд, таким образом продолжительность одного дня является всегда точно 24 часами. В отличие от этого, a Period
добавит концептуальный день, пытаясь поддержать местное время.
Например, рассмотрите добавление периода одного дня и продолжительности одного дня к 18:00 вечером перед разрывом перехода на летнее время. Period
добавит концептуальный день и приведет к a ZonedDateTime
в 18:00 на следующий день. В отличие от этого, Duration
добавит точно 24 часа, приводящие к a ZonedDateTime
в 19:00 на следующий день (принимающий один разрыв DST часа).
Поддерживаемые модули периода YEARS
, MONTHS
и DAYS
. Все три поля всегда присутствуют, но могут быть обнулены.
Период может использоваться с любой календарной системой. Значение "года" или "месяца" только применяется, когда объект добавляется к дате.
Период моделируется как направленное количество времени, означая, что отдельные части периода могут быть отрицательными.
Месяцы и поля лет могут быть нормализованы. Нормализация принимает 12-месячный год, так не является подходящим для всех календарных систем.
Модификатор и Тип | Метод и Описание |
---|---|
Временный |
addTo(Temporal temporal)
Добавляет этот период к указанному временному объекту.
|
static Period |
between(LocalDate startDate, LocalDate endDate)
Получает a
Period состоя из числа лет, месяцев, и дней между двумя датами. |
boolean |
equals(Object obj)
Проверки, если этот период равен другому периоду.
|
static Period |
from(TemporalAmount amount)
Получает экземпляр
Period от временного количества. |
long |
get(TemporalUnit unit)
Получает значение требуемого модуля.
|
int |
getDays()
Получает количество дней этого периода.
|
int |
getMonths()
Получает количество месяцев этого периода.
|
List<TemporalUnit> |
getUnits()
Получает набор модулей, поддерживаемых к этому периоду.
|
int |
getYears()
Получает количество лет этого периода.
|
int |
hashCode()
Хэш-код в течение этого периода.
|
boolean |
isNegative()
Проверки, если какой-либо из трех модулей этого периода отрицателен.
|
boolean |
isZero()
Проверки, если все три модуля этого периода являются нулем.
|
Период |
minus(Period amountToSubtract)
Возвращает копию этого периода с вычтенным установленным периодом.
|
Период |
minusDays(long daysToSubtract)
Возвращает копию этого периода с указанными вычтенными днями.
|
Период |
minusMonths(long monthsToSubtract)
Возвращает копию этого периода с указанными вычтенными месяцами.
|
Период |
minusYears(long yearsToSubtract)
Возвращает копию этого периода с указанными вычтенными годами.
|
Период |
multipliedBy(int scalar)
Возвращает новый экземпляр с каждым элементом в этот период, умноженный на указанный скаляр.
|
Период |
negated()
Возвращает новый экземпляр с каждым количеством в этот отрицаемый период.
|
Период |
normalized()
Возвращает копию этого периода с годами, и месяцы нормализовали использование 12-месячного года.
|
static Period |
of(int years, int months, int days)
Получает a
Period представляя много лет, месяцев и дней. |
static Period |
ofDays(int days)
Получает a
Period представление многих дней. |
static Period |
ofMonths(int months)
Получает a
Period представление многих месяцев. |
static Period |
ofYears(int years)
Получает a
Period представление многих лет. |
static Period |
parse(CharSequence text)
Получает a
Period от текстовой строки такой как PnYnMnD . |
Период |
plus(Period amountToAdd)
Возвращает копию этого периода с добавленным установленным периодом.
|
Период |
plusDays(long daysToAdd)
Возвращает копию этого периода с указанными добавленными днями.
|
Период |
plusMonths(long monthsToAdd)
Возвращает копию этого периода с указанными добавленными месяцами.
|
Период |
plusYears(long yearsToAdd)
Возвращает копию этого периода с указанными добавленными годами.
|
Временный |
subtractFrom(Temporal temporal)
Вычитает этот период из указанного временного объекта.
|
Строка |
toString()
Выводит этот период как a
String , такой как P6Y3M1D . |
long |
toTotalMonths()
Получает общее количество месяцев в этот период, используя 12-месячный год.
|
Период |
withDays(int days)
Возвращает копию этого периода с указанным количеством дней.
|
Период |
withMonths(int months)
Возвращает копию этого периода с указанным количеством месяцев.
|
Период |
withYears(int years)
Возвращает копию этого периода с указанным количеством лет.
|
public static final Period ZERO
public static Period ofYears(int years)
Period
представление многих лет. У получающегося периода будут указанные годы. Месяцы и дневные модули будут нулем.
years
- число лет, положительных или отрицательныхpublic static Period ofMonths(int months)
Period
представление многих месяцев. У получающегося периода будут указанные месяцы. Годы и дневные модули будут нулем.
months
- число месяцев, положительных или отрицательныхpublic static Period ofDays(int days)
Period
представление многих дней. У получающегося периода будут указанные дни. Годы и модули месяцев будут нулем.
days
- число дней, положительных или отрицательныхpublic static Period of(int years, int months, int days)
Period
представляя много лет, месяцев и дней. Это создает экземпляр, основанный на годах, месяцах и днях.
years
- количество лет, может быть отрицательнымmonths
- количество месяцев, может быть отрицательнымdays
- количество дней, может быть отрицательнымpublic static Period from(TemporalAmount amount)
Period
от временного количества. Это получает период, основанный на указанном количестве. A TemporalAmount
представляет количество времени, которое может быть основано на дате или основано на времени, который эта фабрика извлекает к периоду.
Циклы преобразования вокруг набора модулей от количества и использования YEARS
, MONTHS
и DAYS
модули, чтобы создать период. Если какие-либо другие модули находятся тогда, исключение выдается.
amount
- временное количество, чтобы преобразовать, не нульDateTimeException
- если неспособный преобразовать в a Period
ArithmeticException
- если количество лет, месяцы или дни превышают интервалpublic static Period parse(CharSequence text)
Period
от текстовой строки такой как PnYnMnD
. Это проанализирует строку, произведенную toString()
который основан на формате периода ISO 8601 PnYnMnD
.
Строка запускается с дополнительного знака, обозначенного ASCII отрицательный или положительный символ. Если отрицание, целый период отрицается. Буква "P" ASCII является следующей в верхнем регистре или нижнем регистре. Есть тогда три раздела, каждый состоящий из числа и суффикса. По крайней мере один из этих трех разделов должен присутствовать. У разделов есть суффиксы в ASCII "Y", "M" и "D" в течение многих лет, месяцев и дней, принятых в верхнем регистре или нижнем регистре. Суффиксы должны произойти в порядке. Часть числа каждого раздела должна состоять из цифр ASCII. Число может быть снабжено префиксом ASCII отрицательный или положительный символ. Число должно проанализировать к int
.
Продвижение плюс/знак "минус", и отрицательные величины для других модулей не является частью стандарта ISO 8601.
text
- текст, чтобы проанализировать, не нульDateTimeParseException
- если текст не может быть проанализирован к периодуpublic static Period between(LocalDate startDate, LocalDate endDate)
Period
состоя из числа лет, месяцев, и дней между двумя датами. Дата начала включается, но дата окончания не. Период вычисляется, удаляя полные месяцы, тогда вычисляя остающееся число дней, корректируясь, чтобы гарантировать, что у обоих есть тот же самый знак. Число месяцев тогда разделяется на годы и месяцы, основанные на 12-месячном году. Месяц рассматривают, если день-месячного конца больше чем или равен дню-месячного запуска. Например, от 2010-01-15
к 2011-03-18
один год, два месяца и три дня.
Результатом этого метода может быть отрицательный период, если конец перед запуском. Знак минус будет тем же самым в каждом годе, месяце и дне.
startDate
- дата начала, включительно, не нульendDate
- дата окончания, монопольная, не нулевойChronoLocalDate.periodUntil(ChronoLocalDate)
public long get(TemporalUnit unit)
Это возвращает значение для каждого из трех поддерживаемых модулей, YEARS
, MONTHS
и DAYS
. Все другие модули выдают исключение.
get
в интерфейсе TemporalAmount
unit
- TemporalUnit
для которого можно возвратить значениеDateTimeException
- если модуль не поддерживаетсяUnsupportedTemporalTypeException
- если модуль не поддерживаетсяpublic List<TemporalUnit> getUnits()
Поддерживаемые модули YEARS
, MONTHS
и DAYS
. Они возвращаются в годах порядка, месяцы, дни.
Этот набор может использоваться в соединении с get(TemporalUnit)
получить доступ ко всему состоянию периода.
getUnits
в интерфейсе TemporalAmount
public boolean isZero()
У нулевого периода есть нуль значения в течение лет, месяцев и дневных модулей.
public boolean isNegative()
Это проверяет, являются ли годы, месяцы или дневные модули меньше чем нуль.
public int getYears()
Это возвращает модуль лет.
Модуль месяцев не нормализуется с модулем лет. Это означает, что период "15 месяцев" отличается от периода "1 года и 3 месяцев".
public int getMonths()
Это возвращает модуль месяцев.
Модуль месяцев не нормализуется с модулем лет. Это означает, что период "15 месяцев" отличается от периода "1 года и 3 месяцев".
public int getDays()
Это возвращает дневной модуль.
public Period withYears(int years)
Это устанавливает количество модуля лет в копии этого периода. Месяцы и дневные модули незатронуты.
Модуль месяцев не нормализуется с модулем лет. Это означает, что период "15 месяцев" отличается от периода "1 года и 3 месяцев".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
years
- годы, чтобы представить, может быть отрицательнымPeriod
основанный на этом периоде с требуемыми годами, не нулеpublic Period withMonths(int months)
Это устанавливает количество модуля месяцев в копии этого периода. Годы и дневные модули незатронуты.
Модуль месяцев не нормализуется с модулем лет. Это означает, что период "15 месяцев" отличается от периода "1 года и 3 месяцев".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
months
- месяцы, чтобы представить, может быть отрицательнымPeriod
основанный на этом периоде с требуемыми месяцами, не нулеpublic Period withDays(int days)
Это устанавливает количество дневного модуля в копии этого периода. Годы и модули месяцев незатронуты.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
days
- дни, чтобы представить, может быть отрицательнымPeriod
основанный на этом периоде с требуемыми днями, не нулеpublic Period plus(Period amountToAdd)
Это работает отдельно в годы, месяцы и дни.
Например, "1 год, 6 месяцев и 3 дня" плюс "2 года, 2 месяца и 2 дня" возвращают "3 года, 8 месяцев и 5 дней".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
amountToAdd
- период, чтобы добавить, не нульPeriod
основанный на этом периоде с требуемым периодом добавил, не нульArithmeticException
- если числовое переполнение происходитpublic Period plusYears(long yearsToAdd)
Это добавляет количество к модулю лет в копии этого периода. Месяцы и дневные модули незатронуты. Например, "1 год, 6 месяцев и 3 дня" плюс 2 года возвращают "3 года, 6 месяцев и 3 дня".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
yearsToAdd
- годы, чтобы добавить, положительный или отрицательныйPeriod
основанный на этом периоде с указанными годами добавил, не нульArithmeticException
- если числовое переполнение происходитpublic Period plusMonths(long monthsToAdd)
Это добавляет количество к модулю месяцев в копии этого периода. Годы и дневные модули незатронуты. Например, "1 год, 6 месяцев и 3 дня" плюс 2 месяца возвращают "1 год, 8 месяцев и 3 дня".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
monthsToAdd
- месяцы, чтобы добавить, положительный или отрицательныйPeriod
основанный на этом периоде с указанными месяцами добавил, не нульArithmeticException
- если числовое переполнение происходитpublic Period plusDays(long daysToAdd)
Это добавляет количество к дневному модулю в копии этого периода. Годы и модули месяцев незатронуты. Например, "1 год, 6 месяцев и 3 дня" плюс 2 дня возвращают "1 год, 6 месяцев и 5 дней".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
daysToAdd
- дни, чтобы добавить, положительный или отрицательныйPeriod
основанный на этом периоде с указанными днями добавил, не нульArithmeticException
- если числовое переполнение происходитpublic Period minus(Period amountToSubtract)
Это работает отдельно в годы, месяцы и дни.
Например, "1 год, 6 месяцев и 3 дня" минус "2 года, 2 месяца и 2 дня" возвращают "-1 год, 4 месяца и 1 день".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
amountToSubtract
- период, чтобы вычесть, не нульPeriod
основанный на этом периоде с требуемым вычтенным периодом, не нульArithmeticException
- если числовое переполнение происходитpublic Period minusYears(long yearsToSubtract)
Это вычитает количество из модуля лет в копии этого периода. Месяцы и дневные модули незатронуты. Например, "1 год, 6 месяцев и 3 дня" минус 2 года возвращают "-1 год, 6 месяцев и 3 дня".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
yearsToSubtract
- годы, чтобы вычесть, положительный или отрицательныйPeriod
основанный на этом периоде с указанными вычтенными годами, не нульArithmeticException
- если числовое переполнение происходитpublic Period minusMonths(long monthsToSubtract)
Это вычитает количество из модуля месяцев в копии этого периода. Годы и дневные модули незатронуты. Например, "1 год, 6 месяцев и 3 дня" минус 2 месяца возвращают "1 год, 4 месяца и 3 дня".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
monthsToSubtract
- годы, чтобы вычесть, положительный или отрицательныйPeriod
основанный на этом периоде с указанными вычтенными месяцами, не нульArithmeticException
- если числовое переполнение происходитpublic Period minusDays(long daysToSubtract)
Это вычитает количество из дневного модуля в копии этого периода. Годы и модули месяцев незатронуты. Например, "1 год, 6 месяцев и 3 дня" минус 2 дня возвращают "1 год, 6 месяцев и 1 день".
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
daysToSubtract
- месяцы, чтобы вычесть, положительный или отрицательныйPeriod
основанный на этом периоде с указанными вычтенными днями, не нульArithmeticException
- если числовое переполнение происходитpublic Period multipliedBy(int scalar)
Это возвращает период с каждым из лет, месяцев и дневных модулей, индивидуально умноженных. Например, период "2 лет,-3 месяцев и 4 дней", умноженных на 3, возвратит "6 лет,-9 месяцев и 12 дней". Никакая нормализация не выполняется.
scalar
- скаляр, чтобы умножить на, не нульPeriod
основанный на этом периоде с количеством, умноженным на скаляр, не нульArithmeticException
- если числовое переполнение происходитpublic Period negated()
Это возвращает период с каждым из лет, месяцев и дневных модулей, индивидуально отрицаемых. Например, период "2 лет,-3 месяцев и 4 дней" будет отрицаться к "-2 годам, 3 месяцам и-4 дням". Никакая нормализация не выполняется.
Period
основанный на этом периоде с отрицаемым количеством, не нульArithmeticException
- если числовое переполнение происходит, который только происходит, если у одного из модулей есть значение Long.MIN_VALUE
public Period normalized()
Это нормализует годы и модули месяцев, оставляя дневной неизменный модуль. Модуль месяцев корректируется, чтобы иметь абсолютное значение меньше чем 11 с модулем лет, скорректированным, чтобы компенсировать. Например, период "1 Года и 15 месяцев" будет нормализован к "2 годам и 3 месяцам".
Знак лет и модулей месяцев будет тем же самым после нормализации. Например, период "1 года и-25 месяцев" будет нормализован к "-1 году и-1 месяцу".
Эта нормализация использует 12-месячный год, который не допустим для всех календарных систем.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
Period
основанный на этом периоде с избыточными месяцами, нормализованными к годам, не нулюArithmeticException
- если числовое переполнение происходитpublic long toTotalMonths()
Это возвращает общее количество месяцев в период, умножая число лет 12 и добавляя число месяцев.
Это использует 12-месячный год, который не допустим для всех календарных систем.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
public Temporal addTo(Temporal temporal)
Это возвращает временный объект того же самого заметного типа как ввод с этим добавленным периодом.
В большинстве случаев это является более четким, чтобы инвертировать образец вызова при использовании Temporal.plus(TemporalAmount)
.
// these two lines are equivalent, but the second approach is recommended dateTime = thisPeriod.addTo(dateTime); dateTime = dateTime.plus(thisPeriod);
Вычисление добавит годы, тогда месяцы, тогда дни. Только ненулевое количество будет добавлено. Если у разового датой будет календарная система с постоянным числом месяцев через год, то годы и месяцы будут объединены прежде, чем быть добавленным.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
addTo
в интерфейсе TemporalAmount
temporal
- временный объект скорректировать, не нульDateTimeException
- если неспособный добавитьArithmeticException
- если числовое переполнение происходитpublic Temporal subtractFrom(Temporal temporal)
Это возвращает временный объект того же самого заметного типа как ввод с этим вычтенным периодом.
В большинстве случаев это является более четким, чтобы инвертировать образец вызова при использовании Temporal.minus(TemporalAmount)
.
// these two lines are equivalent, but the second approach is recommended dateTime = thisPeriod.subtractFrom(dateTime); dateTime = dateTime.minus(thisPeriod);
Вычисление вычтет годы, тогда месяцы, тогда дни. Только ненулевое количество будет вычтено. Если у разового датой будет календарная система с постоянным числом месяцев через год, то годы и месяцы будут объединены прежде, чем быть вычтенным.
Этот экземпляр является неизменным и незатронутым этим вызовом метода.
subtractFrom
в интерфейсе TemporalAmount
temporal
- временный объект скорректировать, не нульDateTimeException
- если неспособный вычитатьArithmeticException
- если числовое переполнение происходитpublic boolean equals(Object obj)
Сравнение основано на количестве, сохраненном в период. Чтобы быть равными, годы, месяцы и дневные модули должны быть индивидуально равными. Отметьте, что это означает, что период "15 Месяцев" не равен периоду "1 Года и 3 Месяцев".
equals
в class Object
obj
- объект проверить, обнулите, возвращает falseObject.hashCode()
, HashMap
public int hashCode()
hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92