Package org.joda.time

Class 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 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 class java.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 class java.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 class java.lang.Object
        Returns:
        a suitable hashcode