Package org.joda.time

Class PeriodType

java.lang.Object
org.joda.time.PeriodType
All Implemented Interfaces:
Serializable

public class PeriodType extends Object implements 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
Author:
Brian S O'Neill, Stephen Colebourne
See Also:
  • Constructor Details

    • PeriodType

      protected PeriodType(String name, DurationFieldType[] types, int[] indices)
      Constructor.
      Parameters:
      name - the name
      types - the types
      indices - the indices
  • Method Details

    • 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 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:
      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 String toString()
      Gets a debugging to string.
      Overrides:
      toString in class 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(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 class 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 class Object
      Returns:
      a suitable hashcode