Calculates the amount of time until another year in terms of the specified unit.
This calculates the amount of time between two Year
objects in terms of a single TemporalUnit
. The start and end points are this
and the specified year. The result will be negative if the end is before the start. The Temporal
passed to this method is converted to a Year
using from(TemporalAccessor)
. For example, the amount in decades between two year can be calculated using startYear.until(endYear, DECADES)
.
The calculation returns a whole number, representing the number of complete units between the two years. For example, the amount in decades between 2012 and 2031 will only be one decade as it is one year short of two decades.
There are two equivalent ways of using this method. The first is to invoke this method. The second is to use TemporalUnit.between(Temporal, Temporal)
:
// these two lines are equivalent
amount = start.until(end, YEARS);
amount = YEARS.between(start, end);
The choice should be made based on which makes the code more readable.
The calculation is implemented in this method for ChronoUnit
. The units YEARS
, DECADES
, CENTURIES
, MILLENNIA
and ERAS
are supported. Other ChronoUnit
values will throw an exception.
If the unit is not a ChronoUnit
, then the result of this method is obtained by invoking TemporalUnit.between(Temporal, Temporal)
passing this
as the first argument and the converted input temporal as the second argument.
This instance is immutable and unaffected by this method call.