Class Time

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

@Generated(value="org.djunits.generator.GenerateDJUNIT", date="2025-09-06T15:16:28.380798Z") 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-2025 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 with a unit.
      Parameters:
      value - the double value, expressed in the given unit
      unit - unit for the double value
    • Time

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

    • instantiateAbs

      public final Time instantiateAbs(double value, TimeUnit unit)
      Description copied from class: DoubleScalarAbs
      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 - the double value
      unit - 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)
      Description copied from class: DoubleScalarAbs
      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 - the double value
      unit - the unit
      Returns:
      R a new relative instance of the DoubleScalar of the right type
    • ofSI

      public static final Time ofSI(double value)
      Construct Time scalar based on a BASE unit value.
      Parameters:
      value - value in BASE units
      Returns:
      the new scalar with the BASE unit value
    • interpolate

      public static Time interpolate(Time zero, Time one, double ratio)
      Interpolate between two values. Note that the first value does not have to be smaller than the second.
      Parameters:
      zero - the value at a ratio of zero
      one - the value at a ratio of one
      ratio - the ratio between 0 and 1, inclusive
      Returns:
      a Time at the given ratio between 0 and 1
    • max

      public static Time max(Time a1, Time a2)
      Return the maximum value of two absolute scalars.
      Parameters:
      a1 - the first scalar
      a2 - the second scalar
      Returns:
      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 - the first scalar
      a2 - the second scalar
      an - 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 - the first scalar
      a2 - 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 - the first scalar
      a2 - the second scalar
      an - 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 - the textual representation to parse into a Time
      Returns:
      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 - the value to use
      unitString - the textual representation of the unit
      Returns:
      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