Serializable, Comparable<Months>, TemporalAmountpublic final class Months extends Object implements TemporalAmount, Comparable<Months>, Serializable
This class models a quantity or amount of time in terms of months. It is a type-safe way of representing a number of months in an application.
The model is of a directed amount, meaning that the amount may be negative.
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 | Field | Description |
|---|---|---|
static Months |
ONE |
A constant for one month.
|
static Months |
ZERO |
A constant for zero months.
|
| Modifier and Type | Method | Description |
|---|---|---|
Months |
abs() |
Returns a copy of this duration with a positive length.
|
Temporal |
addTo(Temporal temporal) |
Adds this amount to the specified temporal object.
|
static Months |
between(Temporal startDateInclusive,
Temporal endDateExclusive) |
Obtains a
Months consisting of the number of months between two dates. |
int |
compareTo(Months otherAmount) |
Compares this amount to the specified
Months. |
Months |
dividedBy(int divisor) |
Returns an instance with the amount divided by the specified divisor.
|
boolean |
equals(Object otherAmount) |
Checks if this amount is equal to the specified
Months. |
static Months |
from(TemporalAmount amount) |
Obtains an instance of
Months from a temporal amount. |
long |
get(TemporalUnit unit) |
Gets the value of the requested unit.
|
int |
getAmount() |
Gets the number of months in this amount.
|
List<TemporalUnit> |
getUnits() |
Gets the set of units supported by this amount.
|
int |
hashCode() |
A hash code for this amount.
|
Months |
minus(int months) |
Returns a copy of this amount with the specified number of months subtracted.
|
Months |
minus(TemporalAmount amountToAdd) |
Returns a copy of this amount with the specified amount subtracted.
|
Months |
multipliedBy(int scalar) |
Returns an instance with the amount multiplied by the specified scalar.
|
Months |
negated() |
Returns an instance with the amount negated.
|
static Months |
of(int months) |
Obtains a
Months representing a number of months. |
static Months |
ofYears(int years) |
Obtains a
Months representing the number of months
equivalent to a number of years. |
static Months |
parse(CharSequence text) |
Obtains a
Months from a text string such as PnM. |
Months |
plus(int months) |
Returns a copy of this amount with the specified number of months added.
|
Months |
plus(TemporalAmount amountToAdd) |
Returns a copy of this amount with the specified amount added.
|
Temporal |
subtractFrom(Temporal temporal) |
Subtracts this amount from the specified temporal object.
|
Period |
toPeriod() |
Gets the number of months as a
Period. |
String |
toString() |
Returns a string representation of the number of months.
|
public static final Months ZERO
public static final Months ONE
public static Months of(int months)
Months representing a number of months.
The resulting amount will have the specified months.
months - the number of months, positive or negativepublic static Months ofYears(int years)
Months representing the number of months
equivalent to a number of years.
The resulting amount will be month-based, with the number of months equal to the number of years multiplied by 12.
years - the number of years, positive or negativeArithmeticException - if numeric overflow occurspublic static Months from(TemporalAmount amount)
Months from a temporal amount.
This obtains an instance based on the specified amount.
A TemporalAmount represents an amount of time, which may be
date-based or time-based, which this factory extracts to a Months.
The result is calculated by looping around each unit in the specified amount.
Each amount is converted to months using Temporals.convertAmount(long, java.time.temporal.TemporalUnit, java.time.temporal.TemporalUnit).
If the conversion yields a remainder, an exception is thrown.
If the amount is zero, the unit is ignored.
amount - the temporal amount to convert, not nullDateTimeException - if unable to convert to a MonthsArithmeticException - if numeric overflow occurspublic static Months parse(CharSequence text)
Months from a text string such as PnM.
This will parse the string produced by toString() which is
based on the ISO-8601 period format PnYnM.
The string starts with an optional sign, denoted by the ASCII negative
or positive symbol. If negative, the whole amount is negated.
The ASCII letter "P" is next in upper or lower case.
There are then two sections, each consisting of a number and a suffix.
At least one of the two sections must be present.
The sections have suffixes in ASCII of "Y" and "M" for years and months,
accepted in upper or lower case. The suffixes must occur in order.
The number part of each section must consist of ASCII digits.
The number may be prefixed by the ASCII negative or positive symbol.
The number must parse to an int.
The leading plus/minus sign, and negative values for years and months are not part of the ISO-8601 standard.
For example, the following are valid inputs:
"P2M" -- Months.of(2) "P-2M" -- Months.of(-2) "-P2M" -- Months.of(-2) "-P-2M" -- Months.of(2) "P3Y" -- Months.of(3 * 12) "P3Y-2M" -- Months.of(3 * 12 - 2)
text - the text to parse, not nullDateTimeParseException - if the text cannot be parsed to a periodpublic static Months between(Temporal startDateInclusive, Temporal endDateExclusive)
Months consisting of the number of months between two dates.
The start date is included, but the end date is not. The result of this method can be negative if the end is before the start.
startDateInclusive - the start date, inclusive, not nullendDateExclusive - the end date, exclusive, not nullpublic long get(TemporalUnit unit)
This returns a value for the supported unit - MONTHS.
All other units throw an exception.
get in interface TemporalAmountunit - the TemporalUnit for which to return the valueUnsupportedTemporalTypeException - if the unit is not supportedpublic List<TemporalUnit> getUnits()
The single supported unit is MONTHS.
This set can be used in conjunction with get(TemporalUnit)
to access the entire state of the amount.
getUnits in interface TemporalAmountpublic int getAmount()
public Months plus(TemporalAmount amountToAdd)
The parameter is converted using from(TemporalAmount).
This instance is immutable and unaffected by this method call.
amountToAdd - the amount to add, not nullMonths based on this instance with the requested amount added, not nullDateTimeException - if the specified amount contains an invalid unitArithmeticException - if numeric overflow occurspublic Months plus(int months)
This instance is immutable and unaffected by this method call.
months - the amount of months to add, may be negativeMonths based on this instance with the requested amount added, not nullArithmeticException - if the result overflows an intpublic Months minus(TemporalAmount amountToAdd)
The parameter is converted using from(TemporalAmount).
This instance is immutable and unaffected by this method call.
amountToAdd - the amount to add, not nullMonths based on this instance with the requested amount subtracted, not nullDateTimeException - if the specified amount contains an invalid unitArithmeticException - if numeric overflow occurspublic Months minus(int months)
This instance is immutable and unaffected by this method call.
months - the amount of months to add, may be negativeMonths based on this instance with the requested amount subtracted, not nullArithmeticException - if the result overflows an intpublic Months multipliedBy(int scalar)
This instance is immutable and unaffected by this method call.
scalar - the scalar to multiply by, not nullArithmeticException - if numeric overflow occurspublic Months dividedBy(int divisor)
The calculation uses integer division, thus 3 divided by 2 is 1.
This instance is immutable and unaffected by this method call.
divisor - the amount to divide by, may be negativeArithmeticException - if the divisor is zeropublic Months negated()
This instance is immutable and unaffected by this method call.
ArithmeticException - if numeric overflow occurs, which only happens if
the amount is Long.MIN_VALUEpublic Months abs()
This method returns a positive duration by effectively removing the sign from any negative total length.
This instance is immutable and unaffected by this method call.
ArithmeticException - if numeric overflow occurs, which only happens if
the amount is Long.MIN_VALUEpublic Period toPeriod()
Period.
This returns a period with the same number of months.
public Temporal addTo(Temporal temporal)
This returns a temporal object of the same observable type as the input with this amount added.
In most cases, it is clearer to reverse the calling pattern by using
Temporal.plus(TemporalAmount).
// these two lines are equivalent, but the second approach is recommended dateTime = thisAmount.addTo(dateTime); dateTime = dateTime.plus(thisAmount);
Only non-zero amounts will be added.
This instance is immutable and unaffected by this method call.
addTo in interface TemporalAmounttemporal - the temporal object to adjust, not nullDateTimeException - if unable to addUnsupportedTemporalTypeException - if the MONTHS unit is not supportedArithmeticException - if numeric overflow occurspublic Temporal subtractFrom(Temporal temporal)
This returns a temporal object of the same observable type as the input with this amount subtracted.
In most cases, it is clearer to reverse the calling pattern by using
Temporal.minus(TemporalAmount).
// these two lines are equivalent, but the second approach is recommended dateTime = thisAmount.subtractFrom(dateTime); dateTime = dateTime.minus(thisAmount);
Only non-zero amounts will be subtracted.
This instance is immutable and unaffected by this method call.
subtractFrom in interface TemporalAmounttemporal - the temporal object to adjust, not nullDateTimeException - if unable to subtractUnsupportedTemporalTypeException - if the MONTHS unit is not supportedArithmeticException - if numeric overflow occurspublic int compareTo(Months otherAmount)
Months.
The comparison is based on the total length of the amounts.
It is "consistent with equals", as defined by Comparable.
compareTo in interface Comparable<Months>otherAmount - the other amount, not nullpublic boolean equals(Object otherAmount)
Months.
The comparison is based on the total length of the durations.
public int hashCode()
Copyright © 2010–2019 ThreeTen.org. All rights reserved.