public final class Period extends Object implements PeriodProvider, Serializable
A period is a human-scale description of an amount of time.
This class represents the 7 standard definitions from ISOChronology
.
The period units used are 'Years', 'Months', 'Days', 'Hours', 'Minutes',
'Seconds' and 'Nanoseconds'.
The ISOChronology
defines a relationship between some of the units:
Period is immutable and thread-safe.
Modifier and Type | Field and Description |
---|---|
static Period |
ZERO
A constant for a period of zero.
|
Modifier and Type | Method and Description |
---|---|
static Period |
between(DateProvider startDateProvider,
DateProvider endDateProvider)
Obtains a
Period consisting of the number of days, months
and years between two dates. |
static Period |
daysBetween(DateProvider startDateProvider,
DateProvider endDateProvider)
Obtains a
Period consisting of the number of days between two dates. |
Period |
dividedBy(int divisor)
Returns a new instance with each element in this period divided
by the specified value.
|
boolean |
equals(Object obj)
Is this period equal to the specified period.
|
int |
getDays()
Gets the amount of days of this period, if any.
|
int |
getHours()
Gets the amount of hours of this period, if any.
|
int |
getMinutes()
Gets the amount of minutes of this period, if any.
|
int |
getMonths()
Gets the amount of months of this period, if any.
|
long |
getNanos()
Gets the amount of nanoseconds of this period, if any.
|
int |
getNanosInt()
Gets the amount of nanoseconds of this period safely converted
to an
int . |
int |
getSeconds()
Gets the amount of seconds of this period, if any.
|
int |
getYears()
Gets the amount of years of this period, if any.
|
int |
hashCode()
Returns the hash code for this period.
|
boolean |
isPositive()
Checks if this period is fully positive, excluding zero.
|
boolean |
isPositiveOrZero()
Checks if this period is fully positive, including zero.
|
boolean |
isZero()
Checks if this period is zero-length.
|
Period |
minus(PeriodProvider periodProvider)
Returns a copy of this period with the specified period subtracted.
|
Period |
minusDays(int days)
Returns a copy of this period with the specified number of days subtracted.
|
Period |
minusHours(int hours)
Returns a copy of this period with the specified number of hours subtracted.
|
Period |
minusMinutes(int minutes)
Returns a copy of this period with the specified number of minutes subtracted.
|
Period |
minusMonths(int months)
Returns a copy of this period with the specified number of months subtracted.
|
Period |
minusNanos(long nanos)
Returns a copy of this period with the specified number of nanoseconds subtracted.
|
Period |
minusSeconds(int seconds)
Returns a copy of this period with the specified number of seconds subtracted.
|
Period |
minusYears(int years)
Returns a copy of this period with the specified number of years subtracted.
|
static Period |
monthsBetween(DateProvider startDateProvider,
DateProvider endDateProvider)
Obtains a
Period consisting of the number of months between two dates. |
Period |
multipliedBy(int scalar)
Returns a new instance with each element in this period multiplied
by the specified scalar.
|
Period |
negated()
Returns a new instance with each amount in this period negated.
|
Period |
normalized()
Returns a copy of this period with all amounts normalized to the
standard ranges for date-time fields.
|
Period |
normalizedWith24HourDays()
Returns a copy of this period with all amounts normalized to the
standard ranges for date-time fields including the assumption that
days are 24 hours long.
|
static Period |
of(Duration duration)
Obtains a
Period from a Duration . |
static Period |
of(int years,
int months,
int days,
int hours,
int minutes,
int seconds)
Obtains a
Period from date-based and time-based fields. |
static Period |
of(int years,
int months,
int days,
int hours,
int minutes,
int seconds,
long nanos)
Obtains a
Period from date-based and time-based fields. |
static Period |
of(int amount,
PeriodUnit unit)
Obtains a
Period from an amount and unit. |
static Period |
of(PeriodProvider periodProvider)
Obtains a
Period from a provider of periods. |
static Period |
ofDateFields(int years,
int months,
int days)
Obtains a
Period from date-based fields. |
static Period |
ofDateFields(PeriodProvider periodProvider)
Obtains a
Period from the date-based fields of a period. |
static Period |
ofDays(int days)
Obtains a
Period from a number of days. |
static Period |
ofHours(int hours)
Obtains a
Period from a number of hours. |
static Period |
ofMinutes(int minutes)
Obtains a
Period from a number of minutes. |
static Period |
ofMonths(int months)
Obtains a
Period from a number of months. |
static Period |
ofNanos(long nanos)
Obtains a
Period from a number of nanoseconds. |
static Period |
ofSeconds(int seconds)
Obtains a
Period from a number of seconds. |
static Period |
ofTimeFields(int hours,
int minutes,
int seconds)
Obtains a
Period from time-based fields. |
static Period |
ofTimeFields(int hours,
int minutes,
int seconds,
long nanos)
Obtains a
Period from time-based fields. |
static Period |
ofTimeFields(PeriodProvider periodProvider)
Obtains a
Period from the time-based fields of a period. |
static Period |
ofYears(int years)
Obtains a
Period from a number of years. |
static Period |
parse(String text)
Obtains a
Period from a text string such as PnYnMnDTnHnMn.nS . |
Period |
plus(PeriodProvider periodProvider)
Returns a copy of this period with the specified period added.
|
Period |
plusDays(int days)
Returns a copy of this period with the specified number of days added.
|
Period |
plusHours(int hours)
Returns a copy of this period with the specified number of hours added.
|
Period |
plusMinutes(int minutes)
Returns a copy of this period with the specified number of minutes added.
|
Period |
plusMonths(int months)
Returns a copy of this period with the specified number of months added.
|
Period |
plusNanos(long nanos)
Returns a copy of this period with the specified number of nanoseconds added.
|
Period |
plusSeconds(int seconds)
Returns a copy of this period with the specified number of seconds added.
|
Period |
plusYears(int years)
Returns a copy of this period with the specified number of years added.
|
Duration |
toDuration()
Calculates the accurate duration of this period.
|
Duration |
toDurationWith24HourDays()
Calculates the accurate duration of this period.
|
Duration |
toEstimatedDuration()
Estimates the duration of this period.
|
PeriodFields |
toPeriodFields()
Converts this period to a
PeriodFields . |
String |
toString()
Returns a string representation of the amount of time.
|
long |
totalDaysWith24HourDays()
Gets the total number of days represented by this period using standard
assumptions for the meaning of day, hour, minute and second.
|
long |
totalHours()
Gets the total number of hours represented by this period using standard
assumptions for the meaning of hour, minute and second.
|
long |
totalHoursWith24HourDays()
Gets the total number of hours represented by this period using standard
assumptions for the meaning of day, hour, minute and second.
|
long |
totalMinutes()
Gets the total number of minutes represented by this period using standard
assumptions for the meaning of hour, minute and second.
|
long |
totalMinutesWith24HourDays()
Gets the total number of minutes represented by this period using standard
assumptions for the meaning of day, hour, minute and second.
|
long |
totalMonths()
Gets the total number of months represented by this period using standard
assumptions for the meaning of month.
|
long |
totalNanos()
Gets the total number of nanoseconds represented by this period using standard
assumptions for the meaning of hour, minute and second.
|
long |
totalNanosWith24HourDays()
Gets the total number of nanoseconds represented by this period using standard
assumptions for the meaning of day, hour, minute and second.
|
long |
totalSeconds()
Gets the total number of seconds represented by this period using standard
assumptions for the meaning of hour, minute and second.
|
long |
totalSecondsWith24HourDays()
Gets the total number of seconds represented by this period using standard
assumptions for the meaning of day, hour, minute and second.
|
long |
totalYears()
Gets the total number of years represented by this period using standard
assumptions for the meaning of month.
|
Period |
withDateFieldsOnly()
Returns a copy of this period with only the date-based fields retained.
|
Period |
withDays(int days)
Returns a copy of this period with the specified amount of days.
|
Period |
withHours(int hours)
Returns a copy of this period with the specified amount of hours.
|
Period |
withMinutes(int minutes)
Returns a copy of this period with the specified amount of minutes.
|
Period |
withMonths(int months)
Returns a copy of this period with the specified amount of months.
|
Period |
withNanos(long nanos)
Returns a copy of this period with the specified amount of nanoseconds.
|
Period |
withSeconds(int seconds)
Returns a copy of this period with the specified amount of seconds.
|
Period |
withTimeFieldsOnly()
Returns a copy of this period with only the time-based fields retained.
|
Period |
withYears(int years)
Returns a copy of this period with the specified amount of years.
|
static Period |
yearsBetween(DateProvider startDateProvider,
DateProvider endDateProvider)
Obtains a
Period consisting of the number of years between two dates. |
public static final Period ZERO
public static Period of(int years, int months, int days, int hours, int minutes, int seconds)
Period
from date-based and time-based fields.
This creates an instance based on years, months, days, hours, minutes and seconds.
years
- the amount of years, may be negativemonths
- the amount of months, may be negativedays
- the amount of days, may be negativehours
- the amount of hours, may be negativeminutes
- the amount of minutes, may be negativeseconds
- the amount of seconds, may be negativepublic static Period of(int years, int months, int days, int hours, int minutes, int seconds, long nanos)
Period
from date-based and time-based fields.
This creates an instance based on years, months, days, hours, minutes, seconds and nanoseconds. The resulting period will have normalized seconds and nanoseconds.
years
- the amount of years, may be negativemonths
- the amount of months, may be negativedays
- the amount of days, may be negativehours
- the amount of hours, may be negativeminutes
- the amount of minutes, may be negativeseconds
- the amount of seconds, may be negativenanos
- the amount of nanos, may be negativepublic static Period of(PeriodProvider periodProvider)
Period
from a provider of periods.
A Period
supports 7 units, ISO years, months, days, hours,
minutes, seconds and nanoseconds. Any period that contains amounts in
these units, or in units that can be converted to these units will be
accepted. If the provider contains any other unit, an exception is thrown.
periodProvider
- a provider of period information, not nullCalendricalException
- if the provided period cannot be converted to the supported unitsArithmeticException
- if any provided amount, exceeds the supported rangepublic static Period ofDateFields(int years, int months, int days)
Period
from date-based fields.
This creates an instance based on years, months and days.
years
- the amount of years, may be negativemonths
- the amount of months, may be negativedays
- the amount of days, may be negativepublic static Period ofDateFields(PeriodProvider periodProvider)
Period
from the date-based fields of a period.
A Period
supports 7 units, ISO years, months, days, hours,
minutes, seconds and nanoseconds. Any period that contains amounts in
these units, or in units that can be converted to these units will be
accepted. If the provider contains any other unit, an exception is thrown.
Once the initial conversion to the 7 units is complete, the period is created using just the date-based fields - years, months and days. The time-based fields are ignored and will be zero in the created period.
periodProvider
- a provider of period information, not nullCalendricalException
- if the provided period cannot be converted to the supported unitsArithmeticException
- if any provided amount, exceeds the supported rangepublic static Period ofTimeFields(int hours, int minutes, int seconds)
Period
from time-based fields.
This creates an instance based on hours, minutes and seconds.
hours
- the amount of hours, may be negativeminutes
- the amount of minutes, may be negativeseconds
- the amount of seconds, may be negativepublic static Period ofTimeFields(int hours, int minutes, int seconds, long nanos)
Period
from time-based fields.
This creates an instance based on hours, minutes, seconds and nanoseconds.
hours
- the amount of hours, may be negativeminutes
- the amount of minutes, may be negativeseconds
- the amount of seconds, may be negativenanos
- the amount of nanos, may be negativepublic static Period ofTimeFields(PeriodProvider periodProvider)
Period
from the time-based fields of a period.
A Period
supports 7 units, ISO years, months, days, hours,
minutes, seconds and nanoseconds. Any period that contains amounts in
these units, or in units that can be converted to these units will be
accepted. If the provider contains any other unit, an exception is thrown.
Once the initial conversion to the 7 units is complete, the period is created using just the time-based fields - hours, minutes, seconds and nanoseconds. The date-based fields are ignored and will be zero in the created period.
periodProvider
- a provider of period information, not nullCalendricalException
- if the provided period cannot be converted to the supported unitsArithmeticException
- if any provided amount, exceeds the supported rangepublic static Period of(int amount, PeriodUnit unit)
Period
from an amount and unit.
The parameters represent the two parts of a phrase like '6 Days'.
A Period
supports 7 units, ISO years, months, days, hours,
minutes, seconds and nanoseconds. The unit must be one of these, or be
able to be converted to one of these.
amount
- the amount of the period, measured in terms of the unit, positive or negativeunit
- the unit that the period is measured in, not nullpublic static Period ofYears(int years)
Period
from a number of years.years
- the amount of years, may be negativepublic static Period ofMonths(int months)
Period
from a number of months.months
- the amount of months, may be negativepublic static Period ofDays(int days)
Period
from a number of days.days
- the amount of days, may be negativepublic static Period ofHours(int hours)
Period
from a number of hours.hours
- the amount of hours, may be negativepublic static Period ofMinutes(int minutes)
Period
from a number of minutes.minutes
- the amount of minutes, may be negativepublic static Period ofSeconds(int seconds)
Period
from a number of seconds.seconds
- the amount of seconds, may be negativepublic static Period ofNanos(long nanos)
Period
from a number of nanoseconds.nanos
- the amount of nanos, may be negativepublic static Period of(Duration duration)
Period
from a Duration
.
The created period will have normalized values for the hours, minutes, seconds and nanoseconds fields. The years, months and days fields will be zero.
To populate the days field, call normalizedWith24HourDays()
on the created period.
duration
- the duration to create from, not nullPeriodFields
instance, never nullArithmeticException
- if the result exceeds the supported period rangepublic static Period between(DateProvider startDateProvider, DateProvider endDateProvider)
Period
consisting of the number of days, months
and years between two dates.
The start date is included, but the end date is not. Only whole years count.
For example, from 2010-01-15
to 2011-03-18
is one year, two months and three days.
The result of this method can be a negative period if the end is before the start. The negative sign will be the same in each of year, month and day.
Adding the result of this method to the start date will always yield the end date.
startDateProvider
- the start date, inclusive, not nullendDateProvider
- the end date, exclusive, not nullArithmeticException
- if the period exceeds the supported rangepublic static Period yearsBetween(DateProvider startDateProvider, DateProvider endDateProvider)
Period
consisting of the number of years between two dates.
The start date is included, but the end date is not. Only whole years count.
For example, from 2010-01-15
to 2012-01-15
is two years,
whereas from 2010-01-15
to 2012-01-14
is only one year.
The result of this method can be a negative period if the end is before the start.
startDateProvider
- the start date, inclusive, not nullendDateProvider
- the end date, exclusive, not nullArithmeticException
- if the period exceeds the supported rangepublic static Period monthsBetween(DateProvider startDateProvider, DateProvider endDateProvider)
Period
consisting of the number of months between two dates.
The start date is included, but the end date is not. Only whole months count.
For example, from 2010-01-15
to 2010-03-15
is two months,
whereas from 2010-01-15
to 2010-03-14
is only one month.
The result of this method can be a negative period if the end is before the start.
startDateProvider
- the start date, inclusive, not nullendDateProvider
- the end date, exclusive, not nullArithmeticException
- if the period exceeds the supported rangepublic static Period daysBetween(DateProvider startDateProvider, DateProvider endDateProvider)
Period
consisting of the number of days between two dates.
The start date is included, but the end date is not. For example, from
2010-01-15
to 2010-01-18
is three days.
The result of this method can be a negative period if the end is before the start.
startDateProvider
- the start date, inclusive, not nullendDateProvider
- the end date, exclusive, not nullArithmeticException
- if the period exceeds the supported rangepublic static Period parse(String text)
Period
from a text string such as PnYnMnDTnHnMn.nS
.
This will parse the string produced by toString()
which is
a subset of the ISO8601 period format PnYnMnDTnHnMn.nS
.
The string consists of a series of numbers with a suffix identifying their meaning.
The values, and suffixes, must be in the sequence year, month, day, hour, minute, second.
Any of the number/suffix pairs may be omitted providing at least one is present.
If the period is zero, the value is normally represented as PT0S
.
The numbers must consist of ASCII digits.
Any of the numbers may be negative. Negative zero is not accepted.
The number of nanoseconds is expressed as an optional fraction of the seconds.
There must be at least one digit before any decimal point.
There must be between 1 and 9 inclusive digits after any decimal point.
The letters will all be accepted in upper or lower case.
The decimal point may be either a dot or a comma.
text
- the text to parse, not nullCalendricalParseException
- if the text cannot be parsed to a Periodpublic boolean isZero()
public boolean isPositive()
This checks whether all the amounts in the period are positive, defined as greater than zero.
public boolean isPositiveOrZero()
This checks whether all the amounts in the period are positive, defined as greater than or equal to zero.
public int getYears()
public int getMonths()
public int getDays()
public int getHours()
public int getMinutes()
public int getSeconds()
public long getNanos()
public int getNanosInt()
int
.ArithmeticException
- if the number of nanoseconds exceeds the capacity of an int
public Period withYears(int years)
This method will only affect the the years field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
years
- the years to representPeriod
based on this period with the requested years, never nullpublic Period withMonths(int months)
This method will only affect the the months field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
months
- the months to representPeriod
based on this period with the requested months, never nullpublic Period withDays(int days)
This method will only affect the the days field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
days
- the days to representPeriod
based on this period with the requested days, never nullpublic Period withHours(int hours)
This method will only affect the the hours field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
hours
- the hours to representPeriod
based on this period with the requested hours, never nullpublic Period withMinutes(int minutes)
This method will only affect the the minutes field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
minutes
- the minutes to representPeriod
based on this period with the requested minutes, never nullpublic Period withSeconds(int seconds)
This method will only affect the the seconds field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
seconds
- the seconds to representPeriod
based on this period with the requested seconds, never nullpublic Period withNanos(long nanos)
This method will only affect the the nanoseconds field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
nanos
- the nanoseconds to representPeriod
based on this period with the requested nanoseconds, never nullpublic Period withDateFieldsOnly()
The returned period will have the same values for the date-based fields (years, months and days) and zero values for the time-based fields.
This instance is immutable and unaffected by this method call.
Period
based on this period with zero values for time-based fields, never nullpublic Period withTimeFieldsOnly()
The returned period will have the same values for the time-based fields (hours, minutes, seconds and nanoseconds) and zero values for the date-based fields.
This instance is immutable and unaffected by this method call.
Period
based on this period with zero values for date-based fields, never nullpublic Period plus(PeriodProvider periodProvider)
This instance is immutable and unaffected by this method call.
periodProvider
- the period to add, not nullPeriod
based on this period with the requested period added, never nullArithmeticException
- if the capacity of any field is exceededpublic Period plusYears(int years)
This method will only affect the the years field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
years
- the years to add, positive or negativePeriod
based on this period with the requested years added, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period plusMonths(int months)
This method will only affect the the months field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
months
- the months to add, positive or negativePeriod
based on this period with the requested months added, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period plusDays(int days)
This method will only affect the the days field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
days
- the days to add, positive or negativePeriod
based on this period with the requested days added, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period plusHours(int hours)
This method will only affect the the hours field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
hours
- the hours to add, positive or negativePeriod
based on this period with the requested hours added, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period plusMinutes(int minutes)
This method will only affect the the minutes field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
minutes
- the minutes to add, positive or negativePeriod
based on this period with the requested minutes added, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period plusSeconds(int seconds)
This method will only affect the the seconds field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
seconds
- the seconds to add, positive or negativePeriod
based on this period with the requested seconds added, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period plusNanos(long nanos)
This method will only affect the the nanoseconds field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
nanos
- the nanoseconds to add, positive or negativePeriod
based on this period with the requested nanoseconds added, never nullArithmeticException
- if the capacity of a long
is exceededpublic Period minus(PeriodProvider periodProvider)
This instance is immutable and unaffected by this method call.
periodProvider
- the period to subtract, not nullPeriod
based on this period with the requested period subtracted, never nullArithmeticException
- if the capacity of any field is exceededpublic Period minusYears(int years)
This method will only affect the the years field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
years
- the years to subtract, positive or negativePeriod
based on this period with the requested years subtracted, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period minusMonths(int months)
This method will only affect the the months field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
months
- the months to subtract, positive or negativePeriod
based on this period with the requested months subtracted, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period minusDays(int days)
This method will only affect the the days field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
days
- the days to subtract, positive or negativePeriod
based on this period with the requested days subtracted, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period minusHours(int hours)
This method will only affect the the hours field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
hours
- the hours to subtract, positive or negativePeriod
based on this period with the requested hours subtracted, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period minusMinutes(int minutes)
This method will only affect the the minutes field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
minutes
- the minutes to subtract, positive or negativePeriod
based on this period with the requested minutes subtracted, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period minusSeconds(int seconds)
This method will only affect the the seconds field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
seconds
- the seconds to subtract, positive or negativePeriod
based on this period with the requested seconds subtracted, never nullArithmeticException
- if the capacity of an int
is exceededpublic Period minusNanos(long nanos)
This method will only affect the the nanoseconds field. All other fields are left untouched.
This instance is immutable and unaffected by this method call.
nanos
- the nanoseconds to subtract, positive or negativePeriod
based on this period with the requested nanoseconds subtracted, never nullArithmeticException
- if the capacity of a long
is exceededpublic Period multipliedBy(int scalar)
scalar
- the scalar to multiply by, not nullPeriod
based on this period with the amounts multiplied by the scalar, never nullArithmeticException
- if the capacity of any field is exceededpublic Period dividedBy(int divisor)
The implementation simply divides each separate field by the divisor using integer division.
divisor
- the value to divide by, not nullPeriod
based on this period with the amounts divided by the divisor, never nullArithmeticException
- if dividing by zeropublic Period negated()
Period
based on this period with the amounts negated, never nullArithmeticException
- if any field has the minimum valuepublic Period normalized()
Two normalizations occur, one for years and months, and one for
hours, minutes, seconds and nanoseconds.
Days are not normalized, as a day may vary in length at daylight savings cutover.
For example, a period of P1Y15M1DT28H61M
will be normalized to P2Y3M1DT29H1M
.
Note that this method normalizes using assumptions:
This instance is immutable and unaffected by this method call.
Period
based on this period with the amounts normalized, never nullArithmeticException
- if the capacity of any field is exceededpublic Period normalizedWith24HourDays()
Two normalizations occur, one for years and months, and one for
days, hours, minutes, seconds and nanoseconds.
For example, a period of P1Y15M1DT28H
will be normalized to P2Y3M2DT4H
.
Note that this method normalizes using assumptions:
This instance is immutable and unaffected by this method call.
Period
based on this period with the amounts normalized, never nullArithmeticException
- if the capacity of any field is exceededpublic long totalYears()
This method ignores days, hours, minutes, seconds and nanos. It calculates using the assumption:
ArithmeticException
- if the capacity of a long
is exceededpublic long totalMonths()
This method ignores days, hours, minutes, seconds and nanos. It calculates using the assumption:
ArithmeticException
- if the capacity of a long
is exceededpublic long totalDaysWith24HourDays()
This method ignores years and months. It calculates using assumptions:
public long totalHours()
This method ignores years, months and days. It calculates using assumptions:
public long totalHoursWith24HourDays()
This method ignores years and months. It calculates using assumptions:
public long totalMinutes()
This method ignores years, months and days. It calculates using assumptions:
public long totalMinutesWith24HourDays()
This method ignores years and months. It calculates using assumptions:
public long totalSeconds()
This method ignores years, months and days. It calculates using assumptions:
public long totalSecondsWith24HourDays()
This method ignores years and months. It calculates using assumptions:
public long totalNanos()
This method ignores years, months and days. It calculates using assumptions:
ArithmeticException
- if the capacity of a long
is exceededpublic long totalNanosWith24HourDays()
This method ignores years and months. It calculates using assumptions:
ArithmeticException
- if the capacity of a long
is exceededpublic PeriodFields toPeriodFields()
PeriodFields
.
The returned PeriodFields
will only contain the non-zero amounts.
toPeriodFields
in interface PeriodProvider
PeriodFields
equivalent to this period, never nullpublic Duration toEstimatedDuration()
Each PeriodUnit
contains an estimated duration for that unit.
The per-unit estimate allows an estimate to be calculated for the whole period
including years, months and days. The estimate will equal the accurate
calculation if the years, months and days fields are zero.
ArithmeticException
- if the calculation overflowspublic Duration toDuration()
The calculation uses the hours, minutes, seconds and nanoseconds fields. If years, months or days are present an exception is thrown.
The duration is calculated using assumptions:
Duration
equivalent to this period, never nullCalendricalException
- if the period cannot be converted as it contains years/months/dayspublic Duration toDurationWith24HourDays()
The calculation uses the days, hours, minutes, seconds and nanoseconds fields. If years or months are present an exception is thrown.
The duration is calculated using assumptions:
Duration
equivalent to this period, never nullCalendricalException
- if the period cannot be converted as it contains years/months/dayspublic boolean equals(Object obj)
public int hashCode()
Copyright © 2014. All rights reserved.