Class Time

All Implemented Interfaces:
Serializable, Cloneable, Comparable<Time>, Absolute<TimeUnit,Time,DurationUnit,Duration>, Value<TimeUnit,Time>

@Generated(value="org.djunits.generator.GenerateDJUNIT", date="2023-07-23T14:06:38.224104100Z") public class Time extends DoubleScalarAbs<TimeUnit,Time,DurationUnit,Duration>
Easy access methods for the Absolute Time DoubleScalar.

Note that when the offset of a stored absolute Time becomes large, precision of a double might not be enough for the required resolution of a Time. A double has around 16 significant digits (52 bit mantissa). This means that when we need to have a double Time with TimeUnit.BASE as its unit, the largest value where the ms precision is reached is 2^51 = 2.3E15, which is around 71000 years. This is sufficient to store a date in the 21st Century with a BASE or an Epoch offset precise to a microsecond.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands.
All rights reserved.
BSD-style license. See DJUNITS License.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
  • Field Details

    • ZERO

      public static final Time ZERO
      Constant with value zero.
  • Constructor Details

    • Time

      public Time(double value, TimeUnit unit)
      Construct Time scalar.
      Parameters:
      value - double; value
      unit - TimeUnit; unit for the double value
    • Time

      public Time(Time value)
      Construct Time scalar.
      Parameters:
      value - Time; Scalar from which to construct this instance
  • Method Details

    • instantiateAbs

      public final Time instantiateAbs(double value, TimeUnit unit)
      Construct a new Absolute Immutable DoubleScalar of the right type. Each extending class must implement this method.
      Specified by:
      instantiateAbs in class DoubleScalarAbs<TimeUnit,Time,DurationUnit,Duration>
      Parameters:
      value - double; the double value
      unit - AU; the absolute unit
      Returns:
      A a new absolute instance of the DoubleScalar of the right type
    • instantiateRel

      public final Duration instantiateRel(double value, DurationUnit unit)
      Construct a new Relative Immutable DoubleScalar of the right type. Each extending class must implement this method.
      Specified by:
      instantiateRel in class DoubleScalarAbs<TimeUnit,Time,DurationUnit,Duration>
      Parameters:
      value - double; the double value
      unit - RU; the unit
      Returns:
      R a new relative instance of the DoubleScalar of the right type
    • instantiateSI

      public static final Time instantiateSI(double value)
      Construct Time scalar.
      Parameters:
      value - double; value in SI units
      Returns:
      Time; the new scalar with the SI value
    • interpolate

      public static Time interpolate(Time zero, Time one, double ratio)
      Interpolate between two values.
      Parameters:
      zero - Time; the low value
      one - Time; the high value
      ratio - double; the ratio between 0 and 1, inclusive
      Returns:
      Time; a Scalar at the ratio between
    • max

      public static Time max(Time a1, Time a2)
      Return the maximum value of two absolute scalars.
      Parameters:
      a1 - Time; the first scalar
      a2 - Time; the second scalar
      Returns:
      Time; the maximum value of two absolute scalars
    • max

      public static Time max(Time a1, Time a2, Time... an)
      Return the maximum value of more than two absolute scalars.
      Parameters:
      a1 - Time; the first scalar
      a2 - Time; the second scalar
      an - Time...; the other scalars
      Returns:
      the maximum value of more than two absolute scalars
    • min

      public static Time min(Time a1, Time a2)
      Return the minimum value of two absolute scalars.
      Parameters:
      a1 - Time; the first scalar
      a2 - Time; the second scalar
      Returns:
      the minimum value of two absolute scalars
    • min

      public static Time min(Time a1, Time a2, Time... an)
      Return the minimum value of more than two absolute scalars.
      Parameters:
      a1 - Time; the first scalar
      a2 - Time; the second scalar
      an - Time...; the other scalars
      Returns:
      the minimum value of more than two absolute scalars
    • valueOf

      public static Time valueOf(String text)
      Returns a Time representation of a textual representation of a value with a unit. The String representation that can be parsed is the double value in the unit, followed by a localized or English abbreviation of the unit. Spaces are allowed, but not required, between the value and the unit.
      Parameters:
      text - String; the textual representation to parse into a Time
      Returns:
      Time; the Scalar representation of the value in its unit
      Throws:
      IllegalArgumentException - when the text cannot be parsed
      NullPointerException - when the text argument is null
    • of

      public static Time of(double value, String unitString)
      Returns a Time based on a value and the textual representation of the unit, which can be localized.
      Parameters:
      value - double; the value to use
      unitString - String; the textual representation of the unit
      Returns:
      Time; the Scalar representation of the value in its unit
      Throws:
      IllegalArgumentException - when the unit cannot be parsed or is incorrect
      NullPointerException - when the unitString argument is null