Skip to content

//core/io.islandtime.ranges/InstantInterval

InstantInterval

common

class InstantInterval(start: Instant, endExclusive: Instant) : TimePointInterval<Instant> , TimePointProgressionBuilder<Instant>

A half-open interval between two instants.

Instant.MIN and Instant.MAX are used as sentinels to indicate an unbounded (ie. infinite) start or end.

Constructors

InstantInterval

common

fun InstantInterval(start: Instant = Instant.MIN, endExclusive: Instant = Instant.MAX)

Types

Name Summary
Companion

common


object Companion

Functions

Name Summary
contains

common


open operator override fun contains(value: Instant): Boolean

Checks if this interval contains value.
equals

common


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

common


open fun hasBoundedEnd(): Boolean

Checks if this interval's end is bounded, meaning it has a finite value.
hasBoundedStart

common


open fun hasBoundedStart(): Boolean

Checks if this interval's start is bounded, meaning it has a finite value.
hashCode

common


open override fun hashCode(): Int
hasUnboundedEnd

common


open override fun hasUnboundedEnd(): Boolean

Checks if this interval's end is unbounded. In ISO-8601 terminology, this is an "open" end.
hasUnboundedStart

common


open override fun hasUnboundedStart(): Boolean

Checks if this interval's start is unbounded. In ISO-8601 terminology, this is an "open" start.
isBounded

common


open fun isBounded(): Boolean

Checks if both the start and end of this interval are bounded, meaning it has a finite range.
isEmpty

common


open override fun isEmpty(): Boolean

Checks if this interval is empty.
isUnbounded

common


open fun isUnbounded(): Boolean

Checks if both the start and end of this interval are unbounded, meaning this is an infinite time period in both directions.
toString

common


open override fun toString(): String

Converts this interval to a string in ISO-8601 extended format.

Properties

Name Summary
endExclusive

common

open override val endExclusive: Instant

The end of this interval, exclusive.
endInclusive

common

open override val endInclusive: Instant

The end of this interval, inclusive.
first

common

open override val first: Instant
last

common

open override val last: Instant
start

common

open override val start: Instant

The start of this interval, inclusive.

Extensions

Name Summary
at

common


infix fun InstantInterval.at(zone: TimeZone): ZonedDateTimeInterval

Combines this InstantInterval with a TimeZone to create an equivalent ZonedDateTimeInterval where both endpoints are in zone.
random

common


fun InstantInterval.random(): Instant

Returns a random date within this interval using the default random number generator.

common


fun InstantInterval.random(random: Random): Instant

Returns a random date within this interval using the supplied random number generator.
randomOrNull

common


fun InstantInterval.randomOrNull(): Instant?

Returns a random date within this interval using the default random number generator or null if the interval is empty or unbounded.

common


fun InstantInterval.randomOrNull(random: Random): Instant?

Returns a random date within this interval using the supplied random number generator or null if the interval is empty or unbounded.
toDateRangeAt

common


fun InstantInterval.toDateRangeAt(zone: TimeZone): DateRange

Converts this interval to the equivalent DateRange when both endpoints are in zone.
toDateTimeIntervalAt

common


fun InstantInterval.toDateTimeIntervalAt(zone: TimeZone): DateTimeInterval

Converts this interval to the equivalent DateTimeInterval when both endpoints are in zone.