const class sys::Duration

sys::Obj
  sys::Duration

@Serializable { simple=true }

Source

Duration represents a relative duration of time with nanosecond precision.

Also see docLang.

abs

Duration abs()

Source

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

boot

static Duration boot()

Source

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

clamp

Duration clamp(Duration min, Duration max)

Source

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

virtual override Int compare(Obj obj)

Source

Compare based on nanosecond ticks.

defVal

const static Duration defVal

Source

Default value is 0ns.

div

@Operator
Duration div(Int b)

Source

Divide this by b. Shortcut is a/b.

divFloat

@Operator
Duration divFloat(Float b)

Source

Divide this by b. Shortcut is a/b.

equals

virtual override Bool equals(Obj? obj)

Source

Return true if same number nanosecond ticks.

floor

Duration floor(Duration accuracy)

Source

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

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

Source

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

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

Source

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

virtual override Int hash()

Source

Return ticks().

make

static new make(Int ticks)

Source

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

max

Duration max(Duration that)

Source

Return the maximum duration between this and that.

maxVal

const static Duration maxVal

Source

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

min

Duration min(Duration that)

Source

Return the minimum duration between this and that.

minVal

const static Duration minVal

Source

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

minus

@Operator
Duration minus(Duration b)

Source

Subtract b from this. Shortcut is a-b.

mult

@Operator
Duration mult(Int b)

Source

Multiply this with b. Shortcut is a*b.

multFloat

@Operator
Duration multFloat(Float b)

Source

Multiply this with b. Shortcut is a*b.

negate

@Operator
Duration negate()

Source

Negative of this. Shortcut is -a.

now

static Duration now()

Source

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

static Int nowTicks()

Source

Convenience for now.ticks.

plus

@Operator
Duration plus(Duration b)

Source

Add this with b. Shortcut is a+b.

ticks

Int ticks()

Source

Return number of nanosecond ticks.

toCode

Str toCode()

Source

Get this Duration as a Fantom code literal.

toDay

Int toDay()

Source

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

toHour

Int toHour()

Source

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

toIso

Str toIso()

Source

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

Str toLocale()

Source

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

toMillis

Int toMillis()

Source

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

toMin

Int toMin()

Source

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

toSec

Int toSec()

Source

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

toStr

virtual override Str toStr()

Source

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

uptime

static Duration uptime()

Source

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