Class Time

All Implemented Interfaces:
Serializable, Cloneable, Comparable<Time>, Absolute, Scalar<TimeUnit,​Time>, Scalar.Abs<TimeUnit,​Time,​DurationUnit,​Duration>, ValueFunctions<TimeUnit,​Time>, Value<TimeUnit,​Time>, DoubleScalarInterface<TimeUnit,​Time>, DoubleScalarInterface.Abs<TimeUnit,​Time,​DurationUnit,​Duration>

@Generated(value="org.djunits.generator.GenerateDJUNIT",
           date="2019-10-18T12:12:25.568Z")
public class Time
extends AbstractDoubleScalarAbs<TimeUnit,​Time,​DurationUnit,​Duration>
Easy access methods for the Absolute Time DoubleScalar.

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

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.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
Serialized Form
  • 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.
      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.
      Parameters:
      value - double; the double value
      unit - U; 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 the official 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.
      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