Package org.joda.time
Class PeriodType
- java.lang.Object
-
- org.joda.time.PeriodType
-
- All Implemented Interfaces:
java.io.Serializable
public class PeriodType extends java.lang.Object implements java.io.Serializable
Controls a period implementation by specifying which duration fields are to be used.The following implementations are provided:
- Standard - years, months, weeks, days, hours, minutes, seconds, millis
- YearMonthDayTime - years, months, days, hours, minutes, seconds, millis
- YearMonthDay - years, months, days
- YearWeekDayTime - years, weeks, days, hours, minutes, seconds, millis
- YearWeekDay - years, weeks, days
- YearDayTime - years, days, hours, minutes, seconds, millis
- YearDay - years, days, hours
- DayTime - days, hours, minutes, seconds, millis
- Time - hours, minutes, seconds, millis
- plus one for each single type
PeriodType is thread-safe and immutable, and all subclasses must be as well.
- Since:
- 1.0
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PeriodType
days()
Gets a type that defines just the days field.static PeriodType
dayTime()
Gets a type that defines all standard fields from days downwards.boolean
equals(java.lang.Object obj)
Compares this type to another object.static PeriodType
forFields(DurationFieldType[] types)
Gets a period type that contains the duration types of the array.DurationFieldType
getFieldType(int index)
Gets the field type by index.java.lang.String
getName()
Gets the name of the period type.int
hashCode()
Returns a hashcode based on the field types.static PeriodType
hours()
Gets a type that defines just the hours field.int
indexOf(DurationFieldType type)
Gets the index of the field in this period.boolean
isSupported(DurationFieldType type)
Checks whether the field specified is supported by this period.static PeriodType
millis()
Gets a type that defines just the millis field.static PeriodType
minutes()
Gets a type that defines just the minutes field.static PeriodType
months()
Gets a type that defines just the months field.static PeriodType
seconds()
Gets a type that defines just the seconds field.int
size()
Gets the number of fields in the period type.static PeriodType
standard()
Gets a type that defines all standard fields.static PeriodType
time()
Gets a type that defines all standard time fields.java.lang.String
toString()
Gets a debugging to string.static PeriodType
weeks()
Gets a type that defines just the weeks field.PeriodType
withDaysRemoved()
Returns a version of this PeriodType instance that does not support days.PeriodType
withHoursRemoved()
Returns a version of this PeriodType instance that does not support hours.PeriodType
withMillisRemoved()
Returns a version of this PeriodType instance that does not support milliseconds.PeriodType
withMinutesRemoved()
Returns a version of this PeriodType instance that does not support minutes.PeriodType
withMonthsRemoved()
Returns a version of this PeriodType instance that does not support months.PeriodType
withSecondsRemoved()
Returns a version of this PeriodType instance that does not support seconds.PeriodType
withWeeksRemoved()
Returns a version of this PeriodType instance that does not support weeks.PeriodType
withYearsRemoved()
Returns a version of this PeriodType instance that does not support years.static PeriodType
yearDay()
Gets a type that defines the year and day fields.static PeriodType
yearDayTime()
Gets a type that defines all standard fields except months and weeks.static PeriodType
yearMonthDay()
Gets a type that defines the year, month and day fields.static PeriodType
yearMonthDayTime()
Gets a type that defines all standard fields except weeks.static PeriodType
years()
Gets a type that defines just the years field.static PeriodType
yearWeekDay()
Gets a type that defines year, week and day fields.static PeriodType
yearWeekDayTime()
Gets a type that defines all standard fields except months.
-
-
-
Method Detail
-
standard
public static PeriodType standard()
Gets a type that defines all standard fields.- years
- months
- weeks
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearMonthDayTime
public static PeriodType yearMonthDayTime()
Gets a type that defines all standard fields except weeks.- years
- months
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearMonthDay
public static PeriodType yearMonthDay()
Gets a type that defines the year, month and day fields.- years
- months
- days
- Returns:
- the period type
- Since:
- 1.1
-
yearWeekDayTime
public static PeriodType yearWeekDayTime()
Gets a type that defines all standard fields except months.- years
- weeks
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearWeekDay
public static PeriodType yearWeekDay()
Gets a type that defines year, week and day fields.- years
- weeks
- days
- Returns:
- the period type
- Since:
- 1.1
-
yearDayTime
public static PeriodType yearDayTime()
Gets a type that defines all standard fields except months and weeks.- years
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearDay
public static PeriodType yearDay()
Gets a type that defines the year and day fields.- years
- days
- Returns:
- the period type
- Since:
- 1.1
-
dayTime
public static PeriodType dayTime()
Gets a type that defines all standard fields from days downwards.- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
time
public static PeriodType time()
Gets a type that defines all standard time fields.- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
years
public static PeriodType years()
Gets a type that defines just the years field.- Returns:
- the period type
-
months
public static PeriodType months()
Gets a type that defines just the months field.- Returns:
- the period type
-
weeks
public static PeriodType weeks()
Gets a type that defines just the weeks field.- Returns:
- the period type
-
days
public static PeriodType days()
Gets a type that defines just the days field.- Returns:
- the period type
-
hours
public static PeriodType hours()
Gets a type that defines just the hours field.- Returns:
- the period type
-
minutes
public static PeriodType minutes()
Gets a type that defines just the minutes field.- Returns:
- the period type
-
seconds
public static PeriodType seconds()
Gets a type that defines just the seconds field.- Returns:
- the period type
-
millis
public static PeriodType millis()
Gets a type that defines just the millis field.- Returns:
- the period type
-
forFields
public static PeriodType forFields(DurationFieldType[] types)
Gets a period type that contains the duration types of the array.Only the 8 standard duration field types are supported.
- Parameters:
types
- the types to include in the array.- Returns:
- the period type
- Since:
- 1.1
-
getName
public java.lang.String getName()
Gets the name of the period type.- Returns:
- the name
-
size
public int size()
Gets the number of fields in the period type.- Returns:
- the number of fields
-
getFieldType
public DurationFieldType getFieldType(int index)
Gets the field type by index.- Parameters:
index
- the index to retrieve- Returns:
- the field type
- Throws:
java.lang.IndexOutOfBoundsException
- if the index is invalid
-
isSupported
public boolean isSupported(DurationFieldType type)
Checks whether the field specified is supported by this period.- Parameters:
type
- the type to check, may be null which returns false- Returns:
- true if the field is supported
-
indexOf
public int indexOf(DurationFieldType type)
Gets the index of the field in this period.- Parameters:
type
- the type to check, may be null which returns -1- Returns:
- the index of -1 if not supported
-
toString
public java.lang.String toString()
Gets a debugging to string.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string
-
withYearsRemoved
public PeriodType withYearsRemoved()
Returns a version of this PeriodType instance that does not support years.- Returns:
- a new period type that supports the original set of fields except years
-
withMonthsRemoved
public PeriodType withMonthsRemoved()
Returns a version of this PeriodType instance that does not support months.- Returns:
- a new period type that supports the original set of fields except months
-
withWeeksRemoved
public PeriodType withWeeksRemoved()
Returns a version of this PeriodType instance that does not support weeks.- Returns:
- a new period type that supports the original set of fields except weeks
-
withDaysRemoved
public PeriodType withDaysRemoved()
Returns a version of this PeriodType instance that does not support days.- Returns:
- a new period type that supports the original set of fields except days
-
withHoursRemoved
public PeriodType withHoursRemoved()
Returns a version of this PeriodType instance that does not support hours.- Returns:
- a new period type that supports the original set of fields except hours
-
withMinutesRemoved
public PeriodType withMinutesRemoved()
Returns a version of this PeriodType instance that does not support minutes.- Returns:
- a new period type that supports the original set of fields except minutes
-
withSecondsRemoved
public PeriodType withSecondsRemoved()
Returns a version of this PeriodType instance that does not support seconds.- Returns:
- a new period type that supports the original set of fields except seconds
-
withMillisRemoved
public PeriodType withMillisRemoved()
Returns a version of this PeriodType instance that does not support milliseconds.- Returns:
- a new period type that supports the original set of fields except milliseconds
-
equals
public boolean equals(java.lang.Object obj)
Compares this type to another object. To be equal, the object must be a PeriodType with the same set of fields.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the object to compare to- Returns:
- true if equal
-
hashCode
public int hashCode()
Returns a hashcode based on the field types.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- a suitable hashcode
-
-