Duration

A duration of time at nanosecond precision.

For many applications, working with specific units like IntHours or LongSeconds 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.

class Duration : Comparable<Duration>

Types

Companion
Link copied to clipboard
common
object Companion

Functions

compareTo
Link copied to clipboard
common
open operator override fun compareTo(other: Duration): Int
div
Link copied to clipboard
common

Divides this duration by a scalar value.

operator fun div(scalar: Int): Duration
equals
Link copied to clipboard
common
open operator override fun equals(other: Any?): Boolean
hashCode
Link copied to clipboard
common
open override fun hashCode(): Int
isNegative
Link copied to clipboard
common

Checks if this duration is negative.

fun isNegative(): Boolean
isPositive
Link copied to clipboard
common

Checks if this duration is positive.

fun isPositive(): Boolean
isZero
Link copied to clipboard
common

Checks if this duration is zero.

fun isZero(): Boolean
minus
Link copied to clipboard
common
operator fun minus(other: Duration): Duration
operator fun minus(days: IntDays): Duration
operator fun minus(days: LongDays): Duration
operator fun minus(hours: IntHours): Duration
operator fun minus(hours: LongHours): Duration
operator fun minus(minutes: IntMinutes): Duration
operator fun minus(minutes: LongMinutes): Duration
operator fun minus(seconds: IntSeconds): Duration
operator fun minus(seconds: LongSeconds): Duration
operator fun minus(milliseconds: IntMilliseconds): Duration
operator fun minus(milliseconds: LongMilliseconds): Duration
operator fun minus(microseconds: IntMicroseconds): Duration
operator fun minus(microseconds: LongMicroseconds): Duration
operator fun minus(nanoseconds: IntNanoseconds): Duration
operator fun minus(nanoseconds: LongNanoseconds): Duration
plus
Link copied to clipboard
common
operator fun plus(other: Duration): Duration
operator fun plus(days: IntDays): Duration
operator fun plus(days: LongDays): Duration
operator fun plus(hours: IntHours): Duration
operator fun plus(hours: LongHours): Duration
operator fun plus(minutes: IntMinutes): Duration
operator fun plus(minutes: LongMinutes): Duration
operator fun plus(seconds: IntSeconds): Duration
operator fun plus(seconds: LongSeconds): Duration
operator fun plus(milliseconds: IntMilliseconds): Duration
operator fun plus(milliseconds: LongMilliseconds): Duration
operator fun plus(microseconds: IntMicroseconds): Duration
operator fun plus(microseconds: LongMicroseconds): Duration
operator fun plus(nanoseconds: IntNanoseconds): Duration
operator fun plus(nanoseconds: LongNanoseconds): Duration
times
Link copied to clipboard
common

Multiples this duration by a scalar value.

operator fun times(scalar: Int): Duration
toComponents
Link copied to clipboard
common

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

inline fun <T> toComponents(action: (LongDays, IntHours, IntMinutes, IntSeconds, IntNanoseconds) -> T): T

Breaks this duration down into individual unit components.

inline fun <T> toComponents(action: (LongHours, IntMinutes, IntSeconds, IntNanoseconds) -> T): T
inline fun <T> toComponents(action: (LongMinutes, IntSeconds, IntNanoseconds) -> T): T
inline fun <T> toComponents(action: (LongSeconds, IntNanoseconds) -> T): T
toKotlinDuration
Link copied to clipboard
common

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

fun toKotlinDuration(): Duration
toString
Link copied to clipboard
common
open override fun toString(): String
truncatedTo
Link copied to clipboard
common

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

fun truncatedTo(unit: TimeUnit): Duration
unaryMinus
Link copied to clipboard
common
operator fun unaryMinus(): Duration

Properties

absoluteValue
Link copied to clipboard
common

The absolute value of this duration.

val absoluteValue: Duration
inDays
Link copied to clipboard
common

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

val inDays: LongDays
inHours
Link copied to clipboard
common

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

val inHours: LongHours
inMicroseconds
Link copied to clipboard
common

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

val inMicroseconds: LongMicroseconds
inMilliseconds
Link copied to clipboard
common

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

val inMilliseconds: LongMilliseconds
inMinutes
Link copied to clipboard
common

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

val inMinutes: LongMinutes
inNanoseconds
Link copied to clipboard
common

Converts this duration into LongNanoseconds.

val inNanoseconds: LongNanoseconds
inSeconds
Link copied to clipboard
common

Returns the number of whole seconds in this duration.

val inSeconds: LongSeconds
nanosecondAdjustment
Link copied to clipboard
common
val nanosecondAdjustment: IntNanoseconds
seconds
Link copied to clipboard
common
val seconds: LongSeconds

Extensions

toJavaDuration
Link copied to clipboard

Converts this duration to an equivalent Java Duration.

fun Duration.toJavaDuration(): Duration
toNSTimeInterval
Link copied to clipboard
darwin

Converts this duration to an equivalent NSTimeInterval.

fun Duration.toNSTimeInterval(): <ERROR CLASS>