org.joda.time.base
Class AbstractPeriod
java.lang.Object
org.joda.time.base.AbstractPeriod
- ReadablePeriod
public abstract class AbstractPeriod
extends java.lang.Object
AbstractPeriod provides the common behaviour for period classes.
This class should generally not be used directly by API users. The
ReadablePeriod
interface should be used when different
kinds of periods are to be referenced.
AbstractPeriod subclasses may be mutable and not thread-safe.
- Brian S O'Neill
- Stephen Colebourne
AbstractPeriod
protected AbstractPeriod()
Constructor.
equals
public boolean equals(Object period)
Compares this object with the specified object for equality based
on the value of each field. All ReadablePeriod instances are accepted.
Note that a period of 1 day is not equal to a period of 24 hours,
nor is 1 hour equal to 60 minutes. Only periods with the same amount
in each field are equal.
This is because periods represent an abstracted definition of a time
period (eg. a day may not actually be 24 hours, it might be 23 or 25
at daylight savings boundary).
To compare the actual duration of two periods, convert both to
Duration
s, an operation that emphasises
that the result may differ according to the date you choose.
- equals in interface ReadablePeriod
period
- a readable period to check against
- true if all the field values are equal, false if
not or the period is null or of an incorrect type
get
public int get(DurationFieldType type)
Gets the value of one of the fields.
If the field type specified is not supported by the period then zero
is returned.
- get in interface ReadablePeriod
type
- the field type to query, null returns zero
- the value of that field, zero if field not supported
getFieldTypes
public DurationFieldType[] getFieldTypes()
Gets an array of the field types that this period supports.
The fields are returned largest to smallest, for example Hours, Minutes, Seconds.
- the fields supported in an array that may be altered, largest to smallest
getValues
public int[] getValues()
Gets an array of the value of each of the fields that this period supports.
The fields are returned largest to smallest, for example Hours, Minutes, Seconds.
Each value corresponds to the same array index as
getFields()
- the current values of each field in an array that may be altered, largest to smallest
hashCode
public int hashCode()
Gets a hash code for the period as defined by ReadablePeriod.
- hashCode in interface ReadablePeriod
indexOf
public int indexOf(DurationFieldType type)
Gets the index of the field in this period.
type
- the type to check, may be null which returns -1
- the index of -1 if not supported
isSupported
public boolean isSupported(DurationFieldType type)
Checks whether the field specified is supported by this period.
- isSupported in interface ReadablePeriod
type
- the type to check, may be null which returns false
- true if the field is supported
toMutablePeriod
public MutablePeriod toMutablePeriod()
Get this object as a
MutablePeriod
.
This will always return a new
MutablePeriod
with the same fields.
- toMutablePeriod in interface ReadablePeriod
- a MutablePeriod using the same field set and values
toPeriod
public Period toPeriod()
Get this period as an immutable Period
object.
- toPeriod in interface ReadablePeriod
- a Period using the same field set and values
toString
public String toString()
Gets the value as a String in the ISO8601 duration format.
For example, "P6H3M7S" represents 6 hours, 3 minutes, 7 seconds.
For more control over the output, see
PeriodFormatterBuilder
.
- toString in interface ReadablePeriod
- the value as an ISO8601 string
toString
public String toString(PeriodFormatter formatter)
Uses the specified formatter to convert this period to a String.
formatter
- the formatter to use, null means use toString()
.
Copyright (c) 2001-2006 - Joda.org