type

Duration

src @Serializable { simple=true }
const class Duration : Obj

Duration represents a relative duration of time with nanosecond precision.

Also see docLang.

constructors

fromStr

Parse a Str into a Duration according to the Fantom literal format.

make

Create a Duration which represents the specified number of nanosecond ticks.

fields

defVal

Default value is 0ns.

maxVal

Max value is equivalent to make(Int.maxVal).

minVal

Min value is equivalent to make(Int.minVal).

methods

abs

Absolute value - if this is a negative duration, then return its positive value.

boot

Get the system timer at boot time of the Fantom VM.

clamp

Clamp this duration between the min and max.

compare

Compare based on nanosecond ticks.

div

Divide this by b.

divFloat

Divide this by b.

equals

Return true if same number nanosecond ticks.

floor

Return a new Duration with this duration's nanosecond ticks truncated according to the specified accuracy.

fromIso

Parse a duration according to ISO 8601.

hash

Return ticks().

max

Return the maximum duration between this and that.

min

Return the minimum duration between this and that.

minus

Subtract b from this.

mult

Multiply this with b.

multFloat

Multiply this with b.

negate

Negative of this.

now

Get the current value of the system timer.

nowTicks

Convenience for now.ticks.

plus

Add this with b.

ticks

Return number of nanosecond ticks.

toCode

Get this Duration as a Fantom code literal.

toDay

Get this duration in 24 hour days.

toHour

Get this duration in hours.

toIso

Format this duration according to ISO 8601.

toLocale

Return human friendly string representation.

toMillis

Get this duration in milliseconds.

toMin

Get this duration in minutes.

toSec

Get this duration in seconds.

toStr

Return string representation of the duration which is a valid duration literal format suitable for decoding via fromStr.

uptime

Get the duration which has elapsed since the Fantom VM was booted which is now - boot.

Slot Details

abs

src Duration abs()

Absolute value - if this is a negative duration, then return its positive value.

boot

src static Duration boot()

Get the system timer at boot time of the Fantom VM.

clamp

src Duration clamp(Duration min, Duration max)

Clamp this duration between the min and max. If it's less than min then return min, if it's greater than max return max, otherwise return this duration itself.

compare

src virtual override Int compare(Obj obj)

Compare based on nanosecond ticks.

defVal

src const static Duration defVal

Default value is 0ns.

div

src @Operator
Duration div(Int b)

Divide this by b. Shortcut is a/b.

divFloat

src @Operator
Duration divFloat(Float b)

Divide this by b. Shortcut is a/b.

equals

src virtual override Bool equals(Obj? obj)

Return true if same number nanosecond ticks.

floor

src Duration floor(Duration accuracy)

Return a new Duration with this duration's nanosecond ticks truncated according to the specified accuracy. For example floor(1min) will truncate this duration such that its seconds are 0.0.

fromIso

src static Duration fromIso(Str s, Bool checked := true)

Parse a duration according to ISO 8601. If invalid format and checked is false return null, otherwise throw ParseErr. The following restrictions are enforced:

  • Cannot specify a Y year or M month component since it is ambiguous
  • Only the S seconds component may include a fraction
  • Only nanosecond resolution is supported See toIso for example formats.

fromStr

src static new fromStr(Str s, Bool checked := true)

Parse a Str into a Duration according to the Fantom literal format. If invalid format and checked is false return null, otherwise throw ParseErr. The following suffixes are supported:

ns:   nanoseconds  (x 1)
ms:   milliseconds (x 1,000,000)
sec:  seconds      (x 1,000,000,000)
min:  minutes      (x 60,000,000,000)
hr:   hours        (x 3,600,000,000,000)
day:  days         (x 86,400,000,000,000)

Examples:

Duration.fromStr("4ns")
Duration.fromStr("100ms")
Duration.fromStr("-0.5hr")

hash

src virtual override Int hash()

Return ticks().

make

src static new make(Int ticks)

Create a Duration which represents the specified number of nanosecond ticks.

max

src Duration max(Duration that)

Return the maximum duration between this and that.

maxVal

src const static Duration maxVal

Max value is equivalent to make(Int.maxVal).

min

src Duration min(Duration that)

Return the minimum duration between this and that.

minVal

src const static Duration minVal

Min value is equivalent to make(Int.minVal).

minus

src @Operator
Duration minus(Duration b)

Subtract b from this. Shortcut is a-b.

mult

src @Operator
Duration mult(Int b)

Multiply this with b. Shortcut is a*b.

multFloat

src @Operator
Duration multFloat(Float b)

Multiply this with b. Shortcut is a*b.

negate

src @Operator
Duration negate()

Negative of this. Shortcut is -a.

now

src static Duration now()

Get the current value of the system timer. This method returns a relative time unrelated to system or wall-clock time. Typically it is the number of nanosecond ticks which have elapsed since system startup.

nowTicks

src static Int nowTicks()

Convenience for now.ticks.

plus

src @Operator
Duration plus(Duration b)

Add this with b. Shortcut is a+b.

ticks

src Int ticks()

Return number of nanosecond ticks.

toCode

src Str toCode()

Get this Duration as a Fantom code literal.

toDay

src Int toDay()

Get this duration in 24 hour days. Any fractional days are truncated with a loss of precision.

toHour

src Int toHour()

Get this duration in hours. Any fractional hours are truncated with a loss of precision.

toIso

src Str toIso()

Format this duration according to ISO 8601. Also see fromIso.

Examples:

8ns.toIso             =>  PT0.000000008S
100ms.toIso           =>  PT0.1S
(-20sec).toIso        =>  -PT20S
3.5min.toIso          =>  PT3M30S
1day.toIso            =>  PT24H
(1day+2hr+3min).toIso =>  P1DT2H3M

toLocale

src Str toLocale()

Return human friendly string representation. TODO: enhance this for pattern

toMillis

src Int toMillis()

Get this duration in milliseconds. Any fractional milliseconds are truncated with a loss of precision.

toMin

src Int toMin()

Get this duration in minutes. Any fractional minutes are truncated with a loss of precision.

toSec

src Int toSec()

Get this duration in seconds. Any fractional seconds are truncated with a loss of precision.

toStr

src virtual override Str toStr()

Return string representation of the duration which is a valid duration literal format suitable for decoding via fromStr.

uptime

src static Duration uptime()

Get the duration which has elapsed since the Fantom VM was booted which is now - boot.