Adds, subtracts or calculates the modulo of two durations.
Multiplies or divides the duration by an integer value.
Divides two durations.
TickDuration is Deprecated
Multiplies an integral value and a Duration.
TickDuration is Deprecated
Allow Duration to be used as a boolean.
Adds, subtracts or calculates the modulo of two durations as well as assigning the result to this Duration.
Multiplies/Divides the duration by an integer value as well as assigning the result to this Duration.
Returns the negation of this Duration.
Converts this Duration to a string.
Returns whether this Duration is negative.
Largest Duration possible.
Most negative Duration possible.
A Duration of 0. It's shorter than doing something like dur!"seconds"(0) and more explicit than Duration.init.
Splits out the Duration into the given units.
import std.datetime; assert(dur!"days"(12) == dur!"hnsecs"(10_368_000_000_000L)); assert(dur!"hnsecs"(27) == dur!"hnsecs"(27)); assert(std.datetime.Date(2010, 9, 7) + dur!"days"(5) == std.datetime.Date(2010, 9, 12)); assert(days(-12) == dur!"hnsecs"(-10_368_000_000_000L)); assert(hnsecs(-27) == dur!"hnsecs"(-27)); assert(std.datetime.Date(2010, 9, 7) - std.datetime.Date(2010, 10, 3) == days(-26));
import core.time; // using the dur template auto numDays = dur!"days"(12); // using the days function numDays = days(12); // alternatively using UFCS syntax numDays = 12.days; auto myTime = 100.msecs + 20_000.usecs + 30_000.hnsecs; assert(myTime == 123.msecs);
Represents a duration of time of weeks or less (kept internally as hnsecs). (e.g. 22 days or 700 seconds).
It is used when representing a duration of time - such as how long to sleep with core.thread.Thread.sleep.
In std.datetime, it is also used as the result of various arithmetic operations on time points.
Use the dur function or one of its non-generic aliases to create Durations.
It's not possible to create a Duration of months or years, because the variable number of days in a month or year makes it impossible to convert between months or years and smaller units without a specific date. So, nothing uses Durations when dealing with months or years. Rather, functions specific to months and years are defined. For instance, std.datetime.Date has add!"years" and add!"months" for adding years and months rather than creating a Duration of years or months and adding that to a std.datetime.Date. But Duration is used when dealing with weeks or smaller.