Class Duration

All Implemented Interfaces:
Serializable, Comparable<Duration>, Additive<Duration>, Scalable<Duration>, Value<Duration>

public class Duration extends Quantity<Duration>
Duration is the interval of time between two events, measured in seconds (s). This quantity encodes a relative amount of time. The Time quantity encodes an absolute time instant.

Copyright (c) 2025-2026 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djunits.org. The DJUNITS project is distributed under a three-clause BSD-style license.

Author:
Alexander Verbraeck
See Also:
  • Field Details

    • ZERO

      public static final Duration ZERO
      Constant with value zero.
    • ONE

      public static final Duration ONE
      Constant with value one.
    • NaN

      public static final Duration NaN
      Constant with value NaN.
    • POSITIVE_INFINITY

      public static final Duration POSITIVE_INFINITY
      Constant with value POSITIVE_INFINITY.
    • NEGATIVE_INFINITY

      public static final Duration NEGATIVE_INFINITY
      Constant with value NEGATIVE_INFINITY.
    • POS_MAXVALUE

      public static final Duration POS_MAXVALUE
      Constant with value MAX_VALUE.
    • NEG_MAXVALUE

      public static final Duration NEG_MAXVALUE
      Constant with value -MAX_VALUE.
  • Constructor Details

    • Duration

      public Duration(double value, Duration.Unit displayUnit, boolean useSi)
      Instantiate a Duration quantity with an SI or base value and a display unit.
      Parameters:
      value - the quantity value expressed in the SI or base unit
      displayUnit - the display unit to use
      useSi - use SI value when true, use value in unit when false
    • Duration

      public Duration(double valueInUnit, Duration.Unit unit)
      Instantiate a Duration quantity expressed in the given unit.
      Parameters:
      valueInUnit - the quantity value expressed in the given unit
      unit - the unit of the value, also acts as the display unit
  • Method Details

    • ofSi

      public static Duration ofSi(double si)
      Return a Duration instance based on an SI value.
      Parameters:
      si - the si value
      Returns:
      the Duration instance based on an SI value
    • ofSi

      public static Duration ofSi(double siValue, Duration.Unit displayUnit)
      Instantiate a Duration quantity with an SI or base value and a display unit.
      Parameters:
      siValue - the quantity value expressed in the SI or base unit
      displayUnit - the display unit to use
      Returns:
      the Duration instance based on an SI value with the given display unit
    • instantiateSi

      public Duration instantiateSi(double siValue, UnitInterface<Duration> displayUnit)
      Description copied from class: Quantity
      Instantiate a quantity with an SI or base value, and a display unit.
      Specified by:
      instantiateSi in class Quantity<Duration>
      Parameters:
      siValue - the value expressed in the base (SI) unit
      displayUnit - the display unit to use for the quantity
      Returns:
      a quantity with the given SI or base value, and the given display unit
    • valueOf

      public static Duration valueOf(String text)
      Returns a Duration 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 Duration
      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 Duration of(double valueInUnit, Duration.Unit unit)
      Returns a Duration based on a value expressed in the unit.
      Parameters:
      valueInUnit - the value, expressed in the given unit
      unit - the unit of the value, also acts as the display unit
      Returns:
      ab Duration representation of the value in its unit
    • of

      public static Duration of(double valueInUnit, String unitString)
      Returns a Duration based on a value and the textual representation of the unit, which can be localized.
      Parameters:
      valueInUnit - the value, expressed in the unit as given by unitString
      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
    • getDisplayUnit

      public Duration.Unit getDisplayUnit()
      Description copied from interface: Value
      Retrieve the unit of this Value.
      Specified by:
      getDisplayUnit in interface Value<Duration>
      Overrides:
      getDisplayUnit in class Quantity<Duration>
      Returns:
      the unit of this Value
    • add

      public Time add(Time time)
      Add an (absolute) time to this duration, and return a time. The unit of the return value will be the unit of this duration, and the reference of the return value will be the reference belonging to the given time. R.add(A) = unit of R and reference value of A.
      Parameters:
      time - the absolute time to add
      Returns:
      the absolute time plus this duration
    • divide

      public Dimensionless divide(Duration v)
      Calculate the division of Duration and Duration, which results in a Dimensionless quantity.
      Parameters:
      v - quantity
      Returns:
      quantity as a division of Duration and Duration
    • multiply

      public ElectricCharge multiply(ElectricCurrent v)
      Calculate the multiplication of Duration and ElectricCurrent, which results in a ElectricCharge scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and ElectricCurrent
    • multiply

      public Mass multiply(FlowMass v)
      Calculate the multiplication of Duration and FlowMass, which results in a Mass scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and FlowMass
    • multiply

      public Volume multiply(FlowVolume v)
      Calculate the multiplication of Duration and FlowVolume, which results in a Volume scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and FlowVolume
    • multiply

      public Speed multiply(Acceleration v)
      Calculate the multiplication of Duration and Acceleration, which results in a Speed scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and Acceleration
    • multiply

      public Energy multiply(Power v)
      Calculate the multiplication of Duration and Power, which results in a Energy scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and Power
    • multiply

      public Length multiply(Speed v)
      Calculate the multiplication of Duration and Speed, which results in a Length scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and Speed
    • multiply

      public MagneticFlux multiply(ElectricPotential v)
      Calculate the multiplication of Duration and ElectricPotential, which results in a MagneticFlux scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and ElectricPotential
    • multiply

      Calculate the multiplication of Duration and ElectricalResistance, which results in a ElectricalInductance scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and ElectricalResistance
    • multiply

      Calculate the multiplication of Duration and ElectricalConductance, which results in a ElectricalCapacitance scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and ElectricalConductance
    • multiply

      public Angle multiply(AngularVelocity v)
      Calculate the multiplication of Duration and AngularVelocity, which results in a Angle scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and AngularVelocity
    • multiply

      public AngularVelocity multiply(AngularAcceleration v)
      Calculate the multiplication of Duration and AngularAcceleration, which results in a AngularVelocity scalar.
      Parameters:
      v - scalar
      Returns:
      scalar as a multiplication of Duration and AngularAcceleration
    • reciprocal

      public Frequency reciprocal()
      Description copied from class: Quantity
      Return the reciprocal of this quantity (1/q).
      Overrides:
      reciprocal in class Quantity<Duration>
      Returns:
      the reciprocal of this quantity, with the correct SI units