A span of time, such as 27 days, 4 hours, 12 minutes, and 3 seconds.

A Duration represents a difference from one point in time to another. The duration may be "negative" if the difference is from a later time to an earlier.

Durations are context independent. For example, a duration of 2 days is always 48 hours, even when it is added to a DateTime just when the time zone is about to do a daylight-savings switch. (See DateTime.add).

Despite the same name, a Duration object does not implement "Durations" as specified by ISO 8601. In particular, a duration object does not keep track of the individually provided members (such as "days" or "hours"), but only uses these arguments to compute the length of the corresponding time interval.

To create a new Duration object, use this class's single constructor giving the appropriate arguments:

Duration fastestMarathon = new Duration(hours:2, minutes:3, seconds:2);

The Duration is the sum of all individual parts. This means that individual parts can be larger than the next-bigger unit. For example, minutes can be greater than 59.

assert(fastestMarathon.inMinutes == 123);

All individual parts are allowed to be negative.

Use one of the properties, such as inDays, to retrieve the integer value of the Duration in the specified time unit. Note that the returned value is rounded down. For example,

Duration aLongWeekend = new Duration(hours:88);
assert(aLongWeekend.inDays == 3);

This class provides a collection of arithmetic and comparison operators, plus a set of constants useful for converting time units.

See DateTime to represent a point in time. See Stopwatch to measure time-spans.

Implements

Constants

HOURS_PER_DAY int

24
MICROSECONDS_PER_DAY int

MICROSECONDS_PER_HOUR * HOURS_PER_DAY
MICROSECONDS_PER_HOUR int

MICROSECONDS_PER_MINUTE * MINUTES_PER_HOUR
MICROSECONDS_PER_MILLISECOND int

1000
MICROSECONDS_PER_MINUTE int

MICROSECONDS_PER_SECOND * SECONDS_PER_MINUTE
MICROSECONDS_PER_SECOND int

MICROSECONDS_PER_MILLISECOND * MILLISECONDS_PER_SECOND
MILLISECONDS_PER_DAY int

MILLISECONDS_PER_HOUR * HOURS_PER_DAY
MILLISECONDS_PER_HOUR int

MILLISECONDS_PER_MINUTE * MINUTES_PER_HOUR
MILLISECONDS_PER_MINUTE int

MILLISECONDS_PER_SECOND * SECONDS_PER_MINUTE
MILLISECONDS_PER_SECOND int

1000
MINUTES_PER_DAY int

MINUTES_PER_HOUR * HOURS_PER_DAY
MINUTES_PER_HOUR int

60
SECONDS_PER_DAY int

SECONDS_PER_HOUR * HOURS_PER_DAY
SECONDS_PER_HOUR int

SECONDS_PER_MINUTE * MINUTES_PER_HOUR
SECONDS_PER_MINUTE int

60
ZERO Duration

const Duration(seconds: 0)

Constructors

Duration({int days: 0, int hours: 0, int minutes: 0, int seconds: 0, int milliseconds: 0, int microseconds: 0 })

Creates a new Duration object whose value is the sum of all individual parts.

const

Properties

hashCode int

read-only
inDays int

Returns the number of whole days spanned by this Duration.

read-only
inHours int

Returns the number of whole hours spanned by this Duration.

read-only
inMicroseconds int

Returns number of whole microseconds spanned by this Duration.

read-only
inMilliseconds int

Returns number of whole milliseconds spanned by this Duration.

read-only
inMinutes int

Returns the number of whole minutes spanned by this Duration.

read-only
inSeconds int

Returns the number of whole seconds spanned by this Duration.

read-only
isNegative bool

Returns whether this Duration is negative.

read-only
runtimeType Type

A representation of the runtime type of the object.

read-only, inherited

Operators

operator *(num factor) Duration

Multiplies this Duration by the given factor and returns the result as a new Duration object.

operator +(Duration other) Duration

Adds this Duration and other and returns the sum as a new Duration object.

operator -(Duration other) Duration

Subtracts other from this Duration and returns the difference as a new Duration object.

operator <(Duration other) bool

Returns true if the value of this Duration is less than the value of other.

operator <=(Duration other) bool

Returns true if the value of this Duration is less than or equal to the value of other.

operator ==(other) bool

Returns true if this Duration is the same object as other.

operator >(Duration other) bool

Returns true if the value of this Duration is greater than the value of other.

operator >=(Duration other) bool

Returns true if the value of this Duration is greater than or equal to the value of other.

operator unary-() Duration

Returns a new Duration representing this Duration negated.

operator ~/(int quotient) Duration

Divides this Duration by the given quotient and returns the truncated result as a new Duration object.

Methods

abs() Duration

Returns a new Duration representing the absolute value of this Duration.

compareTo(Duration other) int

Compares this Duration to other, returning zero if the values are equal.

noSuchMethod(Invocation invocation) → dynamic

Invoked when a non-existent method or property is accessed.

inherited
toString() String

Returns a string representation of this Duration.