Skip to content

//core/io.islandtime.measures/Duration

Duration

common

class Duration : Comparable<Duration>

A duration of time at nanosecond precision.

For many applications, working with specific units like Hours or Seconds is more efficient and plenty adequate. However, when working with larger durations at sub-second precision, overflow is a very real possibility. Duration is capable of representing fixed, nanosecond-precision durations that span the entire supported time scale, making it more suitable for these use cases.

Types

Name Summary
Companion

common


object Companion

Functions

Name Summary
compareTo

common


open operator override fun compareTo(other: Duration): Int
div

common


operator fun div(scalar: Int): Duration

Divides this duration by a scalar value.
equals

common


open operator override fun equals(other: Any?): Boolean
hashCode

common


open override fun hashCode(): Int
isNegative

common


fun isNegative(): Boolean

Checks if this duration is negative.
isPositive

common


fun isPositive(): Boolean

Checks if this duration is positive.
isZero

common


fun isZero(): Boolean

Checks if this duration is zero.
minus

common


operator fun minus(days: Days): Duration

operator fun minus(other: Duration): Duration

operator fun minus(hours: Hours): Duration

operator fun minus(microseconds: Microseconds): Duration

operator fun minus(milliseconds: Milliseconds): Duration

operator fun minus(minutes: Minutes): Duration

operator fun minus(nanoseconds: Nanoseconds): Duration

operator fun minus(seconds: Seconds): Duration
plus

common


operator fun plus(days: Days): Duration

operator fun plus(other: Duration): Duration

operator fun plus(hours: Hours): Duration

operator fun plus(microseconds: Microseconds): Duration

operator fun plus(milliseconds: Milliseconds): Duration

operator fun plus(minutes: Minutes): Duration

operator fun plus(nanoseconds: Nanoseconds): Duration

operator fun plus(seconds: Seconds): Duration
times

common


operator fun times(scalar: Int): Duration

Multiples this duration by a scalar value.
toComponents

common


inline fun <T> toComponents(action: (seconds: Seconds, nanoseconds: Nanoseconds) -> T): T

inline fun <T> toComponents(action: (minutes: Minutes, seconds: Seconds, nanoseconds: Nanoseconds) -> T): T

inline fun <T> toComponents(action: (hours: Hours, minutes: Minutes, seconds: Seconds, nanoseconds: Nanoseconds) -> T): T

Breaks this duration down into individual unit components.

common


inline fun <T> toComponents(action: (days: Days, hours: Hours, minutes: Minutes, seconds: Seconds, nanoseconds: Nanoseconds) -> T): T

Breaks this duration down into individual unit components, assuming a 24-hour day length.
toComponentValues

common


inline fun <T> toComponentValues(action: (seconds: Long, nanoseconds: Int) -> T): T

inline fun <T> toComponentValues(action: (minutes: Long, seconds: Int, nanoseconds: Int) -> T): T

inline fun <T> toComponentValues(action: (hours: Long, minutes: Int, seconds: Int, nanoseconds: Int) -> T): T

Breaks this duration down into individual unit components.

common


inline fun <T> toComponentValues(action: (days: Long, hours: Int, minutes: Int, seconds: Int, nanoseconds: Int) -> T): T

Breaks this duration down into individual unit components, assuming a 24-hour day length.
toKotlinDuration

common


fun toKotlinDuration(): Duration

Converts this duration to a kotlin.time.Duration. Since Kotlin's Duration type is based on a floating-point number, precision may be lost.
toString

common


open override fun toString(): String
truncatedTo

common


fun truncatedTo(unit: TimeUnit): Duration

Returns this duration, rounded down to match the precision of a given unit.
unaryMinus

common


operator fun unaryMinus(): Duration

Properties

Name Summary
absoluteValue

common

val absoluteValue: Duration

The absolute value of this duration.
inDays

common

val inDays: Days

Converts this duration into the number of 24-hour days represented by it.
inHours

common

val inHours: Hours

Converts this duration into the number of whole hours represented by it.
inMicroseconds

common

val inMicroseconds: Microseconds

Converts this duration into the number of whole microseconds represented by it.
inMilliseconds

common

val inMilliseconds: Milliseconds

Converts this duration into the number of whole milliseconds represented by it.
inMinutes

common

val inMinutes: Minutes

Converts this duration into the number of whole minutes represented by it.
inNanoseconds

common

val inNanoseconds: Nanoseconds

Converts this duration into Nanoseconds.
inSeconds

common

val inSeconds: Seconds

Returns the number of whole seconds in this duration.
nanosecondAdjustment

common

val nanosecondAdjustment: Nanoseconds
seconds

common

val seconds: Seconds

Extensions

Name Summary
toJavaDuration

jvm


fun Duration.toJavaDuration(): Duration

Converts this duration to an equivalent Java Duration.
toNSTimeInterval

darwin


fun Duration.toNSTimeInterval(): <ERROR CLASS>

Converts this duration to an equivalent NSTimeInterval.