 java.lang.Object

 org.threeten.extra.Hours

 All Implemented Interfaces:
Serializable
,Comparable<Hours>
,TemporalAmount
public final class Hours extends Object implements TemporalAmount, Comparable<Hours>, Serializable
A hourbased amount of time, such as '4 hours'.This class models a quantity or amount of time in terms of hours. It is a typesafe way of representing a number of hours in an application.
The model is of a directed amount, meaning that the amount may be negative.
Implementation Requirements:
This class is immutable and threadsafe.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 ==.
 See Also:
 Serialized Form


Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Hours
abs()
Returns a copy of this duration with a positive length.Temporal
addTo(Temporal temporal)
Adds this amount to the specified temporal object.static Hours
between(Temporal startInclusive, Temporal endExclusive)
Obtains aHours
consisting of the number of hours between two temporals.int
compareTo(Hours otherAmount)
Compares this amount to the specifiedHours
.Hours
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 specifiedHours
.static Hours
from(TemporalAmount amount)
Obtains an instance ofHours
from a temporal amount.long
get(TemporalUnit unit)
Gets the value of the requested unit.int
getAmount()
Gets the number of hours in this amount.List<TemporalUnit>
getUnits()
Gets the set of units supported by this amount.int
hashCode()
A hash code for this amount.boolean
isNegative()
Checks if the amount is negative.boolean
isPositive()
Checks if the amount is positive.boolean
isZero()
Checks if the amount is zero.Hours
minus(int hours)
Returns a copy of this amount with the specified number of hours subtracted.Hours
minus(TemporalAmount amountToSubtract)
Returns a copy of this amount with the specified amount subtracted.Hours
multipliedBy(int scalar)
Returns an instance with the amount multiplied by the specified scalar.Hours
negated()
Returns an instance with the amount negated.static Hours
of(int hours)
Obtains anHours
representing a number of hours.static Hours
parse(CharSequence text)
Obtains aHours
from a text string such asPTnH
.Hours
plus(int hours)
Returns a copy of this amount with the specified number of hours added.Hours
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.Duration
toDuration()
Gets the number of hours as aDuration
.Duration
toPeriod()
Deprecated.UsetoDuration()
String
toString()
Returns a string representation of the number of hours.



Field Detail

ZERO
public static final Hours ZERO
A constant for zero hours.


Method Detail

of
public static Hours of(int hours)
Obtains anHours
representing a number of hours.The resulting amount will have the specified hours.
 Parameters:
hours
 the number of hours, positive or negative Returns:
 the number of hours, not null

from
public static Hours from(TemporalAmount amount)
Obtains an instance ofHours
from a temporal amount.This obtains an instance based on the specified amount. A
TemporalAmount
represents an amount of time, which may be datebased or timebased, which this factory extracts to aHours
.The result is calculated by looping around each unit in the specified amount. Each amount is converted to hours 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. Parameters:
amount
 the temporal amount to convert, not null Returns:
 the equivalent amount, not null
 Throws:
DateTimeException
 if unable to convert to aHours
ArithmeticException
 if numeric overflow occurs

parse
public static Hours parse(CharSequence text)
Obtains aHours
from a text string such asPTnH
.This will parse the string produced by
toString()
and other related formats based on ISO8601PnDTnH
.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 two sections consisting of a number and a suffix. There is one section for days suffixed by "D", followed by one section for hours suffixed by "H". At least one section must be present. If the hours section is present it must be prefixed by "T". If the hours section is omitted the "T" must be omitted. Letters must be in ASCII upper or lower case. 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 days and hours are not part of the ISO8601 standard.
For example, the following are valid inputs:
"PT2H"  Hours.of(2) "PTHM"  Hours.of(2) "PT2H"  Hours.of(2) "PT2H"  Hours.of(2) "P3D"  Hours.of(3 * 24) "P3DT2H"  Hours.of(3 * 24 + 2)
 Parameters:
text
 the text to parse, not null Returns:
 the parsed period, not null
 Throws:
DateTimeParseException
 if the text cannot be parsed to a period

between
public static Hours between(Temporal startInclusive, Temporal endExclusive)
Obtains aHours
consisting of the number of hours between two temporals.The start temporal is included, but the end temporal is not. The result of this method can be negative if the end is before the start.
 Parameters:
startInclusive
 the start temporal, inclusive, not nullendExclusive
 the end temporal, exclusive, not null Returns:
 the number of hours between the start and end temporals, not null

get
public long get(TemporalUnit unit)
Gets the value of the requested unit.This returns a value for the supported unit 
HOURS
. All other units throw an exception. Specified by:
get
in interfaceTemporalAmount
 Parameters:
unit
 theTemporalUnit
for which to return the value Returns:
 the long value of the unit
 Throws:
UnsupportedTemporalTypeException
 if the unit is not supported

getUnits
public List<TemporalUnit> getUnits()
Gets the set of units supported by this amount.The single supported unit is
HOURS
.This set can be used in conjunction with
get(TemporalUnit)
to access the entire state of the amount. Specified by:
getUnits
in interfaceTemporalAmount
 Returns:
 a list containing the hours unit, not null

getAmount
public int getAmount()
Gets the number of hours in this amount. Returns:
 the number of hours

isNegative
public boolean isNegative()
Checks if the amount is negative. Returns:
 true if the amount is negative, false if the amount is zero or positive

isZero
public boolean isZero()
Checks if the amount is zero. Returns:
 true if the amount is zero, false if not

isPositive
public boolean isPositive()
Checks if the amount is positive. Returns:
 true if the amount is positive, false if the amount is zero or negative

plus
public Hours plus(TemporalAmount amountToAdd)
Returns a copy of this amount with the specified amount added.The parameter is converted using
from(TemporalAmount)
.This instance is immutable and unaffected by this method call.
 Parameters:
amountToAdd
 the amount to add, not null Returns:
 a
Hours
based on this instance with the requested amount added, not null  Throws:
DateTimeException
 if the specified amount contains an invalid unitArithmeticException
 if numeric overflow occurs

plus
public Hours plus(int hours)
Returns a copy of this amount with the specified number of hours added.This instance is immutable and unaffected by this method call.
 Parameters:
hours
 the amount of hours to add, may be negative Returns:
 a
Hours
based on this instance with the requested amount added, not null  Throws:
ArithmeticException
 if the result overflows an int

minus
public Hours minus(TemporalAmount amountToSubtract)
Returns a copy of this amount with the specified amount subtracted.The parameter is converted using
from(TemporalAmount)
.This instance is immutable and unaffected by this method call.
 Parameters:
amountToSubtract
 the amount to subtract, not null Returns:
 a
Hours
based on this instance with the requested amount subtracted, not null  Throws:
DateTimeException
 if the specified amount contains an invalid unitArithmeticException
 if numeric overflow occurs

minus
public Hours minus(int hours)
Returns a copy of this amount with the specified number of hours subtracted.This instance is immutable and unaffected by this method call.
 Parameters:
hours
 the amount of hours to add, may be negative Returns:
 a
Hours
based on this instance with the requested amount subtracted, not null  Throws:
ArithmeticException
 if the result overflows an int

multipliedBy
public Hours multipliedBy(int scalar)
Returns an instance with the amount multiplied by the specified scalar.This instance is immutable and unaffected by this method call.
 Parameters:
scalar
 the scalar to multiply by, not null Returns:
 the amount multiplied by the specified scalar, not null
 Throws:
ArithmeticException
 if numeric overflow occurs

dividedBy
public Hours dividedBy(int divisor)
Returns an instance with the amount divided by the specified divisor.The calculation uses integer division, thus 3 divided by 2 is 1.
This instance is immutable and unaffected by this method call.
 Parameters:
divisor
 the amount to divide by, may be negative Returns:
 the amount divided by the specified divisor, not null
 Throws:
ArithmeticException
 if the divisor is zero

negated
public Hours negated()
Returns an instance with the amount negated.This instance is immutable and unaffected by this method call.
 Returns:
 the negated amount, not null
 Throws:
ArithmeticException
 if numeric overflow occurs, which only happens if the amount isLong.MIN_VALUE

abs
public Hours abs()
Returns a copy of this duration with a positive length.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.
 Returns:
 the absolute amount, not null
 Throws:
ArithmeticException
 if numeric overflow occurs, which only happens if the amount isLong.MIN_VALUE

toPeriod
@Deprecated public Duration toPeriod()
Deprecated.UsetoDuration()
Gets the number of hours as aDuration
.This returns a duration with the same number of hours.
 Returns:
 the equivalent duration, not null

toDuration
public Duration toDuration()
Gets the number of hours as aDuration
.This returns a duration with the same number of hours.
 Returns:
 the equivalent duration, not null

addTo
public Temporal addTo(Temporal temporal)
Adds this amount to the specified temporal object.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 nonzero amounts will be added.
This instance is immutable and unaffected by this method call.
 Specified by:
addTo
in interfaceTemporalAmount
 Parameters:
temporal
 the temporal object to adjust, not null Returns:
 an object of the same type with the adjustment made, not null
 Throws:
DateTimeException
 if unable to addUnsupportedTemporalTypeException
 if the HOURS unit is not supportedArithmeticException
 if numeric overflow occurs

subtractFrom
public Temporal subtractFrom(Temporal temporal)
Subtracts this amount from the specified temporal object.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 nonzero amounts will be subtracted.
This instance is immutable and unaffected by this method call.
 Specified by:
subtractFrom
in interfaceTemporalAmount
 Parameters:
temporal
 the temporal object to adjust, not null Returns:
 an object of the same type with the adjustment made, not null
 Throws:
DateTimeException
 if unable to subtractUnsupportedTemporalTypeException
 if the HOURS unit is not supportedArithmeticException
 if numeric overflow occurs

compareTo
public int compareTo(Hours otherAmount)
Compares this amount to the specifiedHours
.The comparison is based on the total length of the amounts. It is "consistent with equals", as defined by
Comparable
. Specified by:
compareTo
in interfaceComparable<Hours>
 Parameters:
otherAmount
 the other amount, not null Returns:
 the comparator value, negative if less, positive if greater

equals
public boolean equals(Object otherAmount)
Checks if this amount is equal to the specifiedHours
.The comparison is based on the total length of the durations.

hashCode
public int hashCode()
A hash code for this amount.

