Package groovy.time

# Class Duration

java.lang.Object
groovy.time.BaseDuration
groovy.time.Duration

All Implemented Interfaces:
  `Comparable<BaseDuration>`

Direct Known Subclasses:
  `TimeDuration`

public class Duration extends BaseDuration
Duration represents time periods which have values independent of the context. So, whilst we can't say how long a month is without knowing the year and the name of the month, we know how long a day is independent of the date.

This is not 100% true for days. Days can actually be 23, 24 or 25 hours long (due to daylight saving adjustments.)

If you ask Duration to convert itself to milliseconds then it will work on the basis of 24 hours in a day. If you add or subtract it from a date it will take daylight saving into account.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class groovy.time.BaseDuration

  `BaseDuration.From`

- ## Field Summary

  ### Fields inherited from class groovy.time.BaseDuration

  `days, hours, millis, minutes, months, seconds, years`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Duration(int days, int hours, int minutes, int seconds, int millis)`
  Creates a fixed duration.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Date`
  `getAgo()`
  Returns the date represented by this duration ago.
  `BaseDuration.From`
  `getFrom()`
  Returns a helper for computing dates relative to now.
  `DatumDependentDuration`
  `minus(DatumDependentDuration rhs)`
  Subtracts a datum-dependent duration.
  `Duration`
  `minus(Duration rhs)`
  Subtracts another fixed duration.
  `TimeDatumDependentDuration`
  `minus(TimeDatumDependentDuration rhs)`
  Subtracts a mixed time and datum-dependent duration.
  `TimeDuration`
  `minus(TimeDuration rhs)`
  Subtracts a time duration.
  `DatumDependentDuration`
  `plus(DatumDependentDuration rhs)`
  Adds a datum-dependent duration.
  `Duration`
  `plus(Duration rhs)`
  Adds another fixed duration.
  `Duration`
  `plus(TimeDuration rhs)`
  Adds a time duration.
  `long`
  `toMilliseconds()`
  Converts this duration to milliseconds assuming 24-hour days.

  ### Methods inherited from class groovy.time.BaseDuration

  `compareTo, getDays, getHours, getMillis, getMinutes, getMonths, getSeconds, getYears, plus, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Duration

    public Duration(int days, int hours, int minutes, int seconds, int millis)
    Creates a fixed duration.
    Parameters:
      `days` - the day component
      `hours` - the hour component
      `minutes` - the minute component
      `seconds` - the second component
      `millis` - the millisecond component

- ## Method Details

  - ### plus

    public Duration plus(Duration rhs)
    Adds another fixed duration.
    Parameters:
      `rhs` - the duration to add
    Returns:
      the combined duration

  - ### plus

    public Duration plus(TimeDuration rhs)
    Adds a time duration.
    Parameters:
      `rhs` - the duration to add
    Returns:
      the combined duration

  - ### plus

    public DatumDependentDuration plus(DatumDependentDuration rhs)
    Adds a datum-dependent duration.
    Parameters:
      `rhs` - the duration to add
    Returns:
      the combined duration

  - ### minus

    public Duration minus(Duration rhs)
    Subtracts another fixed duration.
    Parameters:
      `rhs` - the duration to subtract
    Returns:
      the resulting duration

  - ### minus

    public TimeDuration minus(TimeDuration rhs)
    Subtracts a time duration.
    Parameters:
      `rhs` - the duration to subtract
    Returns:
      the resulting duration

  - ### minus

    public DatumDependentDuration minus(DatumDependentDuration rhs)
    Subtracts a datum-dependent duration.
    Parameters:
      `rhs` - the duration to subtract
    Returns:
      the resulting duration

  - ### minus

    public TimeDatumDependentDuration minus(TimeDatumDependentDuration rhs)
    Subtracts a mixed time and datum-dependent duration.
    Parameters:
      `rhs` - the duration to subtract
    Returns:
      the resulting duration

  - ### toMilliseconds

    public long toMilliseconds()
    Converts this duration to milliseconds assuming 24-hour days.
    Specified by:
      `toMilliseconds` in class `BaseDuration`
    Returns:
      the duration in milliseconds

  - ### getAgo

    public Date getAgo()
    Returns the date represented by this duration ago.
    Specified by:
      `getAgo` in class `BaseDuration`
    Returns:
      the computed date

  - ### getFrom

    public BaseDuration.From getFrom()
    Returns a helper for computing dates relative to now.
    Specified by:
      `getFrom` in class `BaseDuration`
    Returns:
      the relative-date helper