Duration class Null safety
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 make a daylightsavings 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:
const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);
The Duration represents a single number of microseconds, which is the sum of all the individual arguments to the constructor.
Properties can access that single number in different ways. For example the inMinutes gives the number of whole minutes in the total duration, which includes the minutes that were provided as "hours" to the constructor, and can be larger than 59.
const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);
print(fastestMarathon.inDays); // 0
print(fastestMarathon.inHours); // 2
print(fastestMarathon.inMinutes); // 123
print(fastestMarathon.inSeconds); // 7382
print(fastestMarathon.inMilliseconds); // 7382000
The duration can be negative, in which case all the properties derived from the duration are also nonpositive.
const overDayAgo = Duration(days: 1, hours: 10);
print(overDayAgo.inDays); // 1
print(overDayAgo.inHours); // 34
print(overDayAgo.inMinutes); // 2040
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,
const aLongWeekend = Duration(hours: 88);
print(aLongWeekend.inDays); // 3
This class provides a collection of arithmetic and comparison operators, plus a set of constants useful for converting time units.
const firstHalf = Duration(minutes: 45); // 00:45:00.000000
const secondHalf = Duration(minutes: 45); // 00:45:00.000000
const overTime = Duration(minutes: 30); // 00:30:00.000000
final maxGameTime = firstHalf + secondHalf + overTime;
print(maxGameTime.inMinutes); // 120
// The duration of the firstHalf and secondHalf is the same, returns 0.
var result = firstHalf.compareTo(secondHalf);
print(result); // 0
// Duration of overTime is shorter than firstHalf, returns < 0.
result = overTime.compareTo(firstHalf);
print(result); // < 0
// Duration of secondHalf is longer than overTime, returns > 0.
result = secondHalf.compareTo(overTime);
print(result); // > 0
See also:
 Implemented types
Constructors
Properties
 hashCode → int

The hash code for this object.
readonly, override
 inDays → int

The number of entire days spanned by this Duration.
readonly
 inHours → int

The number of entire hours spanned by this Duration.
readonly
 inMicroseconds → int

The number of whole microseconds spanned by this Duration.
readonly
 inMilliseconds → int

The number of whole milliseconds spanned by this Duration.
readonly
 inMinutes → int

The number of whole minutes spanned by this Duration.
readonly
 inSeconds → int

The number of whole seconds spanned by this Duration.
readonly
 isNegative → bool

Whether this Duration is negative.
readonly
 runtimeType → Type

A representation of the runtime type of the object.
readonly, inherited
Methods

abs(
) → Duration  Creates a new Duration representing the absolute length of this Duration.

compareTo(
Duration other) → int 
Compares this Duration to
other
, returning zero if the values are equal.override 
noSuchMethod(
Invocation invocation) → dynamic 
Invoked when a nonexistent method or property is accessed.
inherited

toString(
) → String 
Returns a string representation of this Duration.
override
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 
Whether this Duration is shorter than
other
. 
operator <=(
Duration other) → bool 
Whether this Duration is shorter than or equal to
other
. 
operator ==(
Object other) → bool 
Whether this Duration has the same length as
other
.override 
operator >(
Duration other) → bool 
Whether this Duration is longer than
other
. 
operator >=(
Duration other) → bool 
Whether this Duration is longer than or equal to
other
. 
operator unary(
) → Duration  Creates a new Duration with the opposite direction of this Duration.

operator ~/(
int quotient) → Duration 
Divides this Duration by the given
quotient
and returns the truncated result as a new Duration object.
Constants
 hoursPerDay → const int

The number of hours per day.
24
 microsecondsPerDay → const int

The number of microseconds per day.
microsecondsPerHour * hoursPerDay
 microsecondsPerHour → const int

The number of microseconds per hour.
microsecondsPerMinute * minutesPerHour
 microsecondsPerMillisecond → const int

The number of microseconds per millisecond.
1000
 microsecondsPerMinute → const int

The number of microseconds per minute.
microsecondsPerSecond * secondsPerMinute
 microsecondsPerSecond → const int

The number of microseconds per second.
microsecondsPerMillisecond * millisecondsPerSecond
 millisecondsPerDay → const int

The number of milliseconds per day.
millisecondsPerHour * hoursPerDay
 millisecondsPerHour → const int

The number of milliseconds per hour.
millisecondsPerMinute * minutesPerHour
 millisecondsPerMinute → const int

The number of milliseconds per minute.
millisecondsPerSecond * secondsPerMinute
 millisecondsPerSecond → const int

The number of milliseconds per second.
1000
 minutesPerDay → const int

The number of minutes per day.
minutesPerHour * hoursPerDay
 minutesPerHour → const int

The number of minutes per hour.
60
 secondsPerDay → const int

The number of seconds per day.
secondsPerHour * hoursPerDay
 secondsPerHour → const int

The number of seconds per hour.
secondsPerMinute * minutesPerHour
 secondsPerMinute → const int

The number of seconds per minute.
60
 zero → const Duration

An empty duration, representing zero time.
Duration(seconds: 0)