Enum Class JapaneseCalendar.Unit

All Implemented Interfaces:
Serializable, Comparable<JapaneseCalendar.Unit>, java.lang.constant.Constable, ChronoUnit
Enclosing class:

public static enum JapaneseCalendar.Unit extends Enum<JapaneseCalendar.Unit> implements ChronoUnit

Defines some calendar units for the Japanese calendar.

  • Enum Constant Details

    • ERAS

      public static final JapaneseCalendar.Unit ERAS

      The fuzzy unit of a nengo respective era.

      Nengos have very different and unpredictable lengths. Time4J uses Integer.MAX_VALUE as length to indicate this behaviour. If any nengo is one of the northern court (1332-1393) then it will first be converted to its southern court equivalent before applying any era arithmetics.

      If necessary in case of addition, Time4J will adjust the smaller elements year-of-nengo, month-of-year and day-of-month such that they still fit within the context of the newly calculated nengo. However, the main purpose of this unit is to count the nengo distance between two Japanese dates.

    • YEARS

      public static final JapaneseCalendar.Unit YEARS

      The unit of a gregorian or lunisolar year.

      Note that lunisolar years sometimes consist of 13 instead of 12 months.

    • MONTHS

      public static final JapaneseCalendar.Unit MONTHS

      The unit of a gregorian or lunisolar month.

      Note: The month arithmetic is limited to amounts smaller than 25000 otherwise an ArithmeticException will be thrown.

    • WEEKS

      public static final JapaneseCalendar.Unit WEEKS

      The Japanese calendar uses a 7-day-week.

    • DAYS

      public static final JapaneseCalendar.Unit DAYS

      Standard unit for days.

      See Also:
  • Method Details

    • values

      public static JapaneseCalendar.Unit[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static JapaneseCalendar.Unit valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      name - the name of the enum constant to be returned.
      the enum constant with the specified name
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getLength

      public double getLength()
      Description copied from interface: ChronoUnit

      Defines the typical length of this time unit in seconds without taking into account anomalies like timezone effects or leap seconds.

      Important note: This method can only yield an estimated value and is not intended to assist in calculations of durations, but only in sorting of units.

      Specified by:
      getLength in interface ChronoUnit
      estimated decimal value in seconds
    • isCalendrical

      public boolean isCalendrical()
      Description copied from interface: ChronoUnit

      Queries if this time unit is calendrical respective is at least as long as a calendar day.

      Implementation note: The method must be consistent with the typical length of the unit. The expression Double.compare(unit.getLength(), 86400.0) >= 0 is equivalent to unit.isCalendrical().

      Specified by:
      isCalendrical in interface ChronoUnit
      true if at least as long as a day else false
    • between

      public long between(JapaneseCalendar start, JapaneseCalendar end)

      Calculates the difference between given Japanese dates in this unit.

      start - start date (inclusive)
      end - end date (exclusive)
      difference counted in this unit