Package org.joda.time
Class PeriodType
java.lang.Object
org.joda.time.PeriodType
- All Implemented Interfaces:
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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static final Map<PeriodType, Object> Cache of all the known types.private static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodTypeprivate static PeriodType(package private) static int(package private) static intprivate final int[]The array of indicesprivate final StringThe name of the typeprivate final DurationFieldType[]The array of types(package private) static int(package private) static int(package private) static int(package private) static intprivate static final longSerialization version(package private) static int(package private) static int -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPeriodType(String name, DurationFieldType[] types, int[] indices) Constructor. -
Method Summary
Modifier and TypeMethodDescription(package private) booleanaddIndexedField(ReadablePeriod period, int index, int[] values, int valueToAdd) Adds to the indexed field part of the period.static PeriodTypedays()Gets a type that defines just the days field.static PeriodTypedayTime()Gets a type that defines all standard fields from days downwards.booleanCompares this type to another object.static PeriodTypeforFields(DurationFieldType[] types) Gets a period type that contains the duration types of the array.getFieldType(int index) Gets the field type by index.(package private) intgetIndexedField(ReadablePeriod period, int index) Gets the indexed field part of the period.getName()Gets the name of the period type.inthashCode()Returns a hashcode based on the field types.static PeriodTypehours()Gets a type that defines just the hours field.intindexOf(DurationFieldType type) Gets the index of the field in this period.booleanisSupported(DurationFieldType type) Checks whether the field specified is supported by this period.static PeriodTypemillis()Gets a type that defines just the millis field.static PeriodTypeminutes()Gets a type that defines just the minutes field.static PeriodTypemonths()Gets a type that defines just the months field.static PeriodTypeseconds()Gets a type that defines just the seconds field.(package private) booleansetIndexedField(ReadablePeriod period, int index, int[] values, int newValue) Sets the indexed field part of the period.intsize()Gets the number of fields in the period type.static PeriodTypestandard()Gets a type that defines all standard fields.static PeriodTypetime()Gets a type that defines all standard time fields.toString()Gets a debugging to string.static PeriodTypeweeks()Gets a type that defines just the weeks field.Returns a version of this PeriodType instance that does not support days.private PeriodTypewithFieldRemoved(int indicesIndex, String name) Removes the field specified by indices index.Returns a version of this PeriodType instance that does not support hours.Returns a version of this PeriodType instance that does not support milliseconds.Returns a version of this PeriodType instance that does not support minutes.Returns a version of this PeriodType instance that does not support months.Returns a version of this PeriodType instance that does not support seconds.Returns a version of this PeriodType instance that does not support weeks.Returns a version of this PeriodType instance that does not support years.static PeriodTypeyearDay()Gets a type that defines the year and day fields.static PeriodTypeGets a type that defines all standard fields except months and weeks.static PeriodTypeGets a type that defines the year, month and day fields.static PeriodTypeGets a type that defines all standard fields except weeks.static PeriodTypeyears()Gets a type that defines just the years field.static PeriodTypeGets a type that defines year, week and day fields.static PeriodTypeGets a type that defines all standard fields except months.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version- See Also:
-
cTypes
Cache of all the known types. -
YEAR_INDEX
static int YEAR_INDEX -
MONTH_INDEX
static int MONTH_INDEX -
WEEK_INDEX
static int WEEK_INDEX -
DAY_INDEX
static int DAY_INDEX -
HOUR_INDEX
static int HOUR_INDEX -
MINUTE_INDEX
static int MINUTE_INDEX -
SECOND_INDEX
static int SECOND_INDEX -
MILLI_INDEX
static int MILLI_INDEX -
cStandard
-
cYMDTime
-
cYMD
-
cYWDTime
-
cYWD
-
cYDTime
-
cYD
-
cDTime
-
cTime
-
cYears
-
cMonths
-
cWeeks
-
cDays
-
cHours
-
cMinutes
-
cSeconds
-
cMillis
-
iName
The name of the type -
iTypes
The array of types -
iIndices
private final int[] iIndicesThe array of indices
-
-
Constructor Details
-
PeriodType
Constructor.- Parameters:
name- the nametypes- the typesindices- the indices
-
-
Method Details
-
standard
Gets a type that defines all standard fields.- years
- months
- weeks
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearMonthDayTime
Gets a type that defines all standard fields except weeks.- years
- months
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearMonthDay
Gets a type that defines the year, month and day fields.- years
- months
- days
- Returns:
- the period type
- Since:
- 1.1
-
yearWeekDayTime
Gets a type that defines all standard fields except months.- years
- weeks
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearWeekDay
Gets a type that defines year, week and day fields.- years
- weeks
- days
- Returns:
- the period type
- Since:
- 1.1
-
yearDayTime
Gets a type that defines all standard fields except months and weeks.- years
- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
yearDay
Gets a type that defines the year and day fields.- years
- days
- Returns:
- the period type
- Since:
- 1.1
-
dayTime
Gets a type that defines all standard fields from days downwards.- days
- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
time
Gets a type that defines all standard time fields.- hours
- minutes
- seconds
- milliseconds
- Returns:
- the period type
-
years
Gets a type that defines just the years field.- Returns:
- the period type
-
months
Gets a type that defines just the months field.- Returns:
- the period type
-
weeks
Gets a type that defines just the weeks field.- Returns:
- the period type
-
days
Gets a type that defines just the days field.- Returns:
- the period type
-
hours
Gets a type that defines just the hours field.- Returns:
- the period type
-
minutes
Gets a type that defines just the minutes field.- Returns:
- the period type
-
seconds
Gets a type that defines just the seconds field.- Returns:
- the period type
-
millis
Gets a type that defines just the millis field.- Returns:
- the period type
-
forFields
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
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
Gets the field type by index.- Parameters:
index- the index to retrieve- Returns:
- the field type
- Throws:
IndexOutOfBoundsException- if the index is invalid
-
isSupported
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
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
Gets a debugging to string. -
getIndexedField
Gets the indexed field part of the period.- Parameters:
period- the period to queryindex- the index to use- Returns:
- the value of the field, zero if unsupported
-
setIndexedField
Sets the indexed field part of the period.- Parameters:
period- the period to queryindex- the index to usevalues- the array to populatenewValue- the value to set- Throws:
UnsupportedOperationException- if not supported
-
addIndexedField
Adds to the indexed field part of the period.- Parameters:
period- the period to queryindex- the index to usevalues- the array to populatevalueToAdd- the value to add- Returns:
- true if the array is updated
- Throws:
UnsupportedOperationException- if not supported
-
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
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
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
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
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
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
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
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
-
withFieldRemoved
Removes the field specified by indices index.- Parameters:
indicesIndex- the index to removename- the name addition- Returns:
- the new type
-
equals
Compares this type to another object. To be equal, the object must be a PeriodType with the same set of fields. -
hashCode
public int hashCode()Returns a hashcode based on the field types.
-