Class Calendrical<U,​D extends Calendrical<U,​D>>

java.lang.Object
net.time4j.engine.ChronoEntity<T>
net.time4j.engine.TimePoint<U,​D>
net.time4j.engine.Calendrical<U,​D>
Type Parameters:
U - generic type of time unit compatible to ChronoUnit)
D - generic type of self reference
All Implemented Interfaces:
Serializable, Comparable<D>, CalendarDate, ChronoDisplay, Temporal<CalendarDate>
Direct Known Subclasses:
BadiCalendar, CopticCalendar, EastAsianCalendar, EthiopianCalendar, FrenchRepublicanCalendar, HebrewCalendar, IndianCalendar, JapaneseCalendar, JucheCalendar, JulianCalendar, MinguoCalendar, PersianCalendar, PlainDate, ThaiSolarCalendar

public abstract class Calendrical<U,​D extends Calendrical<U,​D>> extends TimePoint<U,​D> implements CalendarDate

Abstract base class of all plain calendar date types which are convertible via their day epoch numbers.

Author:
Meno Hochschild
  • Constructor Details

    • Calendrical

      public Calendrical()
  • Method Details

    • isBefore

      public boolean isBefore(CalendarDate date)
      Description copied from interface: Temporal

      Queries if this object is before given object on a timeline.

      Specified by:
      isBefore in interface Temporal<U>
      Parameters:
      date - object this instance is compared to
      Returns:
      true if this instance is temporally before temporal else false
    • isAfter

      public boolean isAfter(CalendarDate date)
      Description copied from interface: Temporal

      Queries if this object is after given object on a timeline.

      Specified by:
      isAfter in interface Temporal<U>
      Parameters:
      date - object this instance is compared to
      Returns:
      true if this instance is temporally after temporal else false
    • isSimultaneous

      public boolean isSimultaneous(CalendarDate date)
      Description copied from interface: Temporal

      Queries if this object and given object have the same position on the time axis.

      Is equivalent to !isAfter(temporal) && !isBefore(temporal). This method differs from the Object-method equals() such that first the comparison type must be a temporal one and second that only temporal-only state will be considered.

      Specified by:
      isSimultaneous in interface Temporal<U>
      Parameters:
      date - object this instance is compared to
      Returns:
      true if this instance is temporally equal to temporal else false
    • compareTo

      public int compareTo(D date)

      Defines a total respective natural order.

      This implementation first evaluates the temporal position on the common timeline, that is the epoch day numbers. Only date objects of the same calendrical type are comparable. The order is consistent with equals() as long as subclasses don't define further state attributes. If objects of different calendrical type are to be compared on the timeline only applications can either use an EpochDays-instance as Comparator or use one of the Temporal-methods isAfter(), isBefore() and isSimultaneous().

      Specified by:
      compareTo in interface Comparable<U>
      Specified by:
      compareTo in class TimePoint<U,​D extends Calendrical<U,​D>>
      Throws:
      ClassCastException - if there are different date types
      See Also:
      EpochDays.compare(ChronoDisplay, ChronoDisplay), isBefore(CalendarDate), isAfter(CalendarDate)
    • equals

      public boolean equals(Object obj)

      Based on the epoch day number and the calendar system.

      In other words: Two date object are equal if they have the same temporal position on the local timeline and have the same calendrical type. Subclasses which define further state attributes must override this method.

      If an only temporal comparison is required then the method isSimultaneous(CalendarDate) is to be used.

      Specified by:
      equals in class TimePoint<U,​D extends Calendrical<U,​D>>
      See Also:
      Chronology.getChronoType()
    • hashCode

      public int hashCode()

      Based on the epoch day number.

      Specified by:
      hashCode in class TimePoint<U,​D extends Calendrical<U,​D>>
    • plus

      public D plus(CalendarDays days)

      Adds given calendar days to this instance.

      Parameters:
      days - calendar days to be added
      Returns:
      result of addition
      Throws:
      ArithmeticException - in case of numerical overflow
      Since:
      3.4/4.3
    • minus

      public D minus(CalendarDays days)

      Subtracts given calendar days from this instance.

      Parameters:
      days - calendar days to be subtracted
      Returns:
      result of subtraction
      Throws:
      ArithmeticException - in case of numerical overflow
      Since:
      3.4/4.3
    • getDaysSinceEpochUTC

      public long getDaysSinceEpochUTC()
      Description copied from interface: CalendarDate

      Counts the elapsed days since UTC epoch.

      Specified by:
      getDaysSinceEpochUTC in interface CalendarDate
      Returns:
      count of days relative to UTC epoch [1972-01-01]
      See Also:
      EpochDays.UTC