Class BasicFixedMonthChronology

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    CopticChronology, EthiopicChronology

    abstract class BasicFixedMonthChronology
    extends BasicChronology
    Abstract implementation of a calendar system based around fixed length months.

    As the month length is fixed various calculations can be optimised. This implementation assumes any additional days after twelve months fall into a thirteenth month.

    BasicFixedMonthChronology is thread-safe and immutable, and all subclasses must be as well.

    Since:
    1.2, refactored from CopticChronology
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Serialization lock
        See Also:
        Constant Field Values
      • MILLIS_PER_YEAR

        static final long MILLIS_PER_YEAR
        The typical millis per year.
        See Also:
        Constant Field Values
      • MILLIS_PER_MONTH

        static final long MILLIS_PER_MONTH
        The length of the month in millis.
        See Also:
        Constant Field Values
    • Constructor Detail

      • BasicFixedMonthChronology

        BasicFixedMonthChronology​(Chronology base,
                                  java.lang.Object param,
                                  int minDaysInFirstWeek)
        Restricted constructor.
        Parameters:
        base - the base chronology
        param - the init parameter
        minDaysInFirstWeek - the minimum days in the first week
    • Method Detail

      • setYear

        long setYear​(long instant,
                     int year)
        Description copied from class: BasicChronology
        Sets the year from an instant and year.
        Specified by:
        setYear in class BasicChronology
        Parameters:
        instant - millis from 1970-01-01T00:00:00Z
        year - the year to set
        Returns:
        the updated millis
      • getYearDifference

        long getYearDifference​(long minuendInstant,
                               long subtrahendInstant)
        Description copied from class: BasicChronology
        Gets the difference between the two instants in years.
        Specified by:
        getYearDifference in class BasicChronology
        Parameters:
        minuendInstant - the first instant
        subtrahendInstant - the second instant
        Returns:
        the difference
      • getTotalMillisByYearMonth

        long getTotalMillisByYearMonth​(int year,
                                       int month)
        Description copied from class: BasicChronology
        Gets the total number of millis elapsed in this year at the start of the specified month, such as zero for month 1.
        Specified by:
        getTotalMillisByYearMonth in class BasicChronology
        Parameters:
        year - the year
        month - the month
        Returns:
        the elapsed millis at the start of the month
      • getDayOfMonth

        int getDayOfMonth​(long millis)
        Overrides:
        getDayOfMonth in class BasicChronology
        Parameters:
        millis - from 1970-01-01T00:00:00Z
      • isLeapYear

        boolean isLeapYear​(int year)
        Description copied from class: BasicChronology
        Is the specified year a leap year?
        Specified by:
        isLeapYear in class BasicChronology
        Parameters:
        year - the year to test
        Returns:
        true if leap
      • getDaysInYearMonth

        int getDaysInYearMonth​(int year,
                               int month)
        Description copied from class: BasicChronology
        Gets the number of days in the specified month and year.
        Specified by:
        getDaysInYearMonth in class BasicChronology
        Parameters:
        year - the year
        month - the month
        Returns:
        the number of days
      • getDaysInMonthMax

        int getDaysInMonthMax​(int month)
        Description copied from class: BasicChronology
        Gets the maximum days in the specified month.
        Specified by:
        getDaysInMonthMax in class BasicChronology
        Parameters:
        month - the month
        Returns:
        the max days
      • getMonthOfYear

        int getMonthOfYear​(long millis)
        Overrides:
        getMonthOfYear in class BasicChronology
        Parameters:
        millis - from 1970-01-01T00:00:00Z
      • getMonthOfYear

        int getMonthOfYear​(long millis,
                           int year)
        Specified by:
        getMonthOfYear in class BasicChronology
        Parameters:
        millis - from 1970-01-01T00:00:00Z
        year - precalculated year of millis