Class EthiopicChronology

  • All Implemented Interfaces:
    java.io.Serializable

    public final class EthiopicChronology
    extends AssembledChronology
    Implements the Ethiopic calendar system, which defines every fourth year as leap, much like the Julian calendar. The year is broken down into 12 months, each 30 days in length. An extra period at the end of the year is either 5 or 6 days in length. In this implementation, it is considered a 13th month.

    Year 1 in the Ethiopic calendar began on August 29, 8 CE (Julian), thus Ethiopic years do not begin at the same time as Julian years. This chronology is not proleptic, as it does not allow dates before the first Ethiopic year.

    This implementation defines a day as midnight to midnight exactly as per the ISO chronology. Some references indicate that a coptic day starts at sunset on the previous ISO day, but this has not been confirmed and is not implemented.

    EthiopicChronology is thread-safe and immutable.

    Since:
    1.2
    See Also:
    Wikipedia, Serialized Form
    • Field Detail

      • EE

        public static final int EE
        Constant value for 'Ethiopean Era', equivalent to the value returned for AD/CE.
        See Also:
        Constant Field Values
    • Method Detail

      • getInstanceUTC

        public static EthiopicChronology getInstanceUTC()
        Gets an instance of the EthiopicChronology. The time zone of the returned instance is UTC.
        Returns:
        a singleton UTC instance of the chronology
      • getInstance

        public static EthiopicChronology getInstance()
        Gets an instance of the EthiopicChronology in the default time zone.
        Returns:
        a chronology in the default time zone
      • getInstance

        public static EthiopicChronology getInstance​(DateTimeZone zone)
        Gets an instance of the EthiopicChronology in the given time zone.
        Parameters:
        zone - the time zone to get the chronology in, null is default
        Returns:
        a chronology in the specified time zone
      • getInstance

        public static EthiopicChronology getInstance​(DateTimeZone zone,
                                                     int minDaysInFirstWeek)
        Gets an instance of the EthiopicChronology in the given time zone.
        Parameters:
        zone - the time zone to get the chronology in, null is default
        minDaysInFirstWeek - minimum number of days in first week of the year; default is 4
        Returns:
        a chronology in the specified time zone
      • withUTC

        public Chronology withUTC()
        Gets the Chronology in the UTC time zone.
        Specified by:
        withUTC in class BaseChronology
        Returns:
        the chronology in UTC
      • getZone

        public DateTimeZone getZone()
        Description copied from class: BaseChronology
        Returns the DateTimeZone that this Chronology operates in, or null if unspecified.
        Overrides:
        getZone in class AssembledChronology
        Returns:
        DateTimeZone null if unspecified
      • getDateTimeMillis

        public long getDateTimeMillis​(int year,
                                      int monthOfYear,
                                      int dayOfMonth,
                                      int millisOfDay)
                               throws java.lang.IllegalArgumentException
        Description copied from class: BaseChronology
        Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

        The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

        Overrides:
        getDateTimeMillis in class AssembledChronology
        Parameters:
        year - year to use
        monthOfYear - month to use
        dayOfMonth - day of month to use
        millisOfDay - millisecond to use
        Returns:
        millisecond instant from 1970-01-01T00:00:00Z
        Throws:
        java.lang.IllegalArgumentException - if the values are invalid
      • getDateTimeMillis

        public long getDateTimeMillis​(int year,
                                      int monthOfYear,
                                      int dayOfMonth,
                                      int hourOfDay,
                                      int minuteOfHour,
                                      int secondOfMinute,
                                      int millisOfSecond)
                               throws java.lang.IllegalArgumentException
        Description copied from class: BaseChronology
        Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

        The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

        Overrides:
        getDateTimeMillis in class AssembledChronology
        Parameters:
        year - year to use
        monthOfYear - month to use
        dayOfMonth - day of month to use
        hourOfDay - hour to use
        minuteOfHour - minute to use
        secondOfMinute - second to use
        millisOfSecond - millisecond to use
        Returns:
        millisecond instant from 1970-01-01T00:00:00Z
        Throws:
        java.lang.IllegalArgumentException - if the values are invalid
      • getMinimumDaysInFirstWeek

        public int getMinimumDaysInFirstWeek()
      • equals

        public boolean equals​(java.lang.Object obj)
        Checks if this chronology instance equals another.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to compare to
        Returns:
        true if equal
        Since:
        1.6
      • hashCode

        public int hashCode()
        A suitable hash code for the chronology.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hash code
        Since:
        1.6
      • toString

        public java.lang.String toString()
        Gets a debugging toString.
        Specified by:
        toString in class BaseChronology
        Returns:
        a debugging string