java.io.Serializable
, java.lang.Comparable<java.time.chrono.ChronoLocalDate>
, java.time.chrono.ChronoLocalDate
, java.time.temporal.Temporal
, java.time.temporal.TemporalAccessor
, java.time.temporal.TemporalAdjuster
public final class AccountingDate
extends java.lang.Object
implements java.time.chrono.ChronoLocalDate, java.io.Serializable
This date operates using a given Accounting calendar.
An Accounting calendar differs greatly from the ISO calendar.
The start of the Accounting calendar will vary against the ISO calendar.
Depending on options chosen, it can start as early as 0000-01-26 (ISO)
or as late as 0001-01-04 (ISO)
.
This class must be treated as a value type. Do not synchronize, rely on the identity hash code or use the distinction between equals() and ==.
Modifier and Type | Method | Description |
---|---|---|
java.time.chrono.ChronoLocalDateTime<AccountingDate> |
atTime(java.time.LocalTime localTime) |
|
boolean |
equals(java.lang.Object obj) |
Compares this date to another date, including the chronology.
|
static AccountingDate |
from(AccountingChronology chronology,
java.time.temporal.TemporalAccessor temporal) |
Obtains an
AccountingDate from a temporal object. |
AccountingChronology |
getChronology() |
Gets the chronology of this date, which is an Accounting calendar system.
|
long |
getLong(java.time.temporal.TemporalField field) |
|
int |
hashCode() |
A hash code for this date.
|
int |
lengthOfMonth() |
|
int |
lengthOfYear() |
|
AccountingDate |
minus(long amountToSubtract,
java.time.temporal.TemporalUnit unit) |
|
AccountingDate |
minus(java.time.temporal.TemporalAmount amount) |
|
static AccountingDate |
now(AccountingChronology chronology) |
Obtains the current
AccountingDate from the system clock in the default time-zone,
translated with the given AccountingChronology. |
static AccountingDate |
now(AccountingChronology chronology,
java.time.Clock clock) |
Obtains the current
AccountingDate from the specified clock,
translated with the given AccountingChronology. |
static AccountingDate |
now(AccountingChronology chronology,
java.time.ZoneId zone) |
Obtains the current
AccountingDate from the system clock in the specified time-zone,
translated with the given AccountingChronology. |
static AccountingDate |
of(AccountingChronology chronology,
int prolepticYear,
int month,
int dayOfMonth) |
Obtains a
AccountingDate representing a date in the given accounting calendar
system from the proleptic-year, month-of-year and day-of-month fields. |
AccountingDate |
plus(long amountToAdd,
java.time.temporal.TemporalUnit unit) |
|
AccountingDate |
plus(java.time.temporal.TemporalAmount amount) |
|
java.time.temporal.ValueRange |
range(java.time.temporal.TemporalField field) |
|
long |
toEpochDay() |
|
java.lang.String |
toString() |
|
java.time.chrono.ChronoPeriod |
until(java.time.chrono.ChronoLocalDate endDateExclusive) |
|
long |
until(java.time.temporal.Temporal endExclusive,
java.time.temporal.TemporalUnit unit) |
|
AccountingDate |
with(java.time.temporal.TemporalAdjuster adjuster) |
|
AccountingDate |
with(java.time.temporal.TemporalField field,
long newValue) |
adjustInto, compareTo, format, getEra, isAfter, isBefore, isEqual, isLeapYear, isSupported, isSupported, query, toString
public static AccountingDate now(AccountingChronology chronology)
AccountingDate
from the system clock in the default time-zone,
translated with the given AccountingChronology.
This will query the system clock
in the default
time-zone to obtain the current date.
Using this method will prevent the ability to use an alternate clock for testing because the clock is hard-coded.
chronology
- the Accounting chronology to base the date on, not nulljava.time.DateTimeException
- if the current date cannot be obtained,
NullPointerException if an AccountingChronology was not providedpublic static AccountingDate now(AccountingChronology chronology, java.time.ZoneId zone)
AccountingDate
from the system clock in the specified time-zone,
translated with the given AccountingChronology.
This will query the system clock
to obtain the current date.
Specifying the time-zone avoids dependence on the default time-zone.
Using this method will prevent the ability to use an alternate clock for testing because the clock is hard-coded.
chronology
- the Accounting chronology to base the date on, not nullzone
- the zone ID to use, not nulljava.time.DateTimeException
- if the current date cannot be obtained,
NullPointerException if an AccountingChronology was not providedpublic static AccountingDate now(AccountingChronology chronology, java.time.Clock clock)
AccountingDate
from the specified clock,
translated with the given AccountingChronology.
This will query the specified clock to obtain the current date - today. Using this method allows the use of an alternate clock for testing. The alternate clock may be introduced using dependency injection.
chronology
- the Accounting chronology to base the date on, not nullclock
- the clock to use, not nulljava.time.DateTimeException
- if the current date cannot be obtained,
NullPointerException if an AccountingChronology was not providedpublic static AccountingDate of(AccountingChronology chronology, int prolepticYear, int month, int dayOfMonth)
AccountingDate
representing a date in the given accounting calendar
system from the proleptic-year, month-of-year and day-of-month fields.
This returns a AccountingDate
with the specified fields.
The day must be valid for the year and month, otherwise an exception will be thrown.
chronology
- the Accounting chronology to base the date on, not nullprolepticYear
- the Accounting proleptic-yearmonth
- the Accounting month-of-year, from 1 to 12 or 1 to 13dayOfMonth
- the Accounting day-of-month, from 1 to 35 or 1 to 42java.time.DateTimeException
- if the value of any field is out of range,
if the day-of-month is invalid for the month-year,
or if an AccountingChronology was not providedpublic static AccountingDate from(AccountingChronology chronology, java.time.temporal.TemporalAccessor temporal)
AccountingDate
from a temporal object.
This obtains a date in the specified Accounting calendar system based on the specified temporal.
A TemporalAccessor
represents an arbitrary set of date and time information,
which this factory converts to an instance of AccountingDate
.
The conversion typically uses the EPOCH_DAY
field, which is standardized across calendar systems.
This method almost matches the signature of the functional interface TemporalQuery
and must be used as a query via something that supplies the missing parameter,
such as a curried method reference, temporal -> AccountingDate.from(chronology, temporal)
(where chronology
resolves to a set up AccountingChronology
).
chronology
- the Accounting chronology to base the date on, not nulltemporal
- the temporal object to convert, not nulljava.time.DateTimeException
- if unable to convert to an AccountingDate
,
NullPointerException if an AccountingChronology was not providedpublic AccountingChronology getChronology()
The Chronology
represents the calendar system in use.
The era and other fields in ChronoField
are defined by the chronology.
getChronology
in interface java.time.chrono.ChronoLocalDate
public int lengthOfMonth()
lengthOfMonth
in interface java.time.chrono.ChronoLocalDate
public int lengthOfYear()
lengthOfYear
in interface java.time.chrono.ChronoLocalDate
public AccountingDate with(java.time.temporal.TemporalAdjuster adjuster)
with
in interface java.time.chrono.ChronoLocalDate
with
in interface java.time.temporal.Temporal
public AccountingDate with(java.time.temporal.TemporalField field, long newValue)
with
in interface java.time.chrono.ChronoLocalDate
with
in interface java.time.temporal.Temporal
public AccountingDate plus(java.time.temporal.TemporalAmount amount)
plus
in interface java.time.chrono.ChronoLocalDate
plus
in interface java.time.temporal.Temporal
public AccountingDate plus(long amountToAdd, java.time.temporal.TemporalUnit unit)
plus
in interface java.time.chrono.ChronoLocalDate
plus
in interface java.time.temporal.Temporal
public AccountingDate minus(java.time.temporal.TemporalAmount amount)
minus
in interface java.time.chrono.ChronoLocalDate
minus
in interface java.time.temporal.Temporal
public AccountingDate minus(long amountToSubtract, java.time.temporal.TemporalUnit unit)
minus
in interface java.time.chrono.ChronoLocalDate
minus
in interface java.time.temporal.Temporal
public java.time.chrono.ChronoLocalDateTime<AccountingDate> atTime(java.time.LocalTime localTime)
atTime
in interface java.time.chrono.ChronoLocalDate
public long until(java.time.temporal.Temporal endExclusive, java.time.temporal.TemporalUnit unit)
until
in interface java.time.chrono.ChronoLocalDate
until
in interface java.time.temporal.Temporal
public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate endDateExclusive)
until
in interface java.time.chrono.ChronoLocalDate
public long toEpochDay()
toEpochDay
in interface java.time.chrono.ChronoLocalDate
public boolean equals(java.lang.Object obj)
Compares this date with another ensuring that the date is the same.
Only objects of this concrete type are compared, other types return false.
To compare the dates of two TemporalAccessor
instances, including dates
in two different chronologies, use ChronoField.EPOCH_DAY
as a comparator.
equals
in interface java.time.chrono.ChronoLocalDate
obj
- the object to check, null returns falsepublic int hashCode()
hashCode
in interface java.time.chrono.ChronoLocalDate
public java.time.temporal.ValueRange range(java.time.temporal.TemporalField field)
range
in interface java.time.temporal.TemporalAccessor
public long getLong(java.time.temporal.TemporalField field)
getLong
in interface java.time.temporal.TemporalAccessor
public java.lang.String toString()
toString
in interface java.time.chrono.ChronoLocalDate
toString
in class java.lang.Object
Copyright © 2010–2018 ThreeTen.org. All rights reserved.