Skip to content

//core/io.islandtime.ranges/OffsetDateTimeInterval

OffsetDateTimeInterval

common

class OffsetDateTimeInterval(start: OffsetDateTime, endExclusive: OffsetDateTime) : TimePointInterval<OffsetDateTime>

A half-open interval between two offset date-times based on timeline order.

DateTime.MIN and DateTime.MAX are used as sentinels to indicate an unbounded (ie. infinite) start or end. An OffsetDateTime with either as the date-time component will be treated accordingly, regardless of the offset.

Constructors

OffsetDateTimeInterval

common

fun OffsetDateTimeInterval(start: OffsetDateTime = UNBOUNDED.start, endExclusive: OffsetDateTime = UNBOUNDED.endExclusive)

Types

Name Summary
Companion

common


object Companion

Functions

Name Summary
contains

common


open operator override fun contains(value: OffsetDateTime): 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: OffsetDateTime

The end of this interval, exclusive.
endInclusive

common

open override val endInclusive: OffsetDateTime

The end of this interval, inclusive.
start

common

open override val start: OffsetDateTime

The start of this interval, inclusive.

Extensions

Name Summary
asZonedDateTimeInterval

common


fun OffsetDateTimeInterval.asZonedDateTimeInterval(): ZonedDateTimeInterval

Converts this interval to an equivalent ZonedDateTimeInterval where both endpoints are given a fixed-offset time zone.
lengthInCenturies

common


val OffsetDateTimeInterval.lengthInCenturies: Centuries

The number of whole centuries between the start and end of this interval.
lengthInDays

common


val OffsetDateTimeInterval.lengthInDays: Days

The number of whole days between the start and end of this interval.
lengthInDecades

common


val OffsetDateTimeInterval.lengthInDecades: Decades

The number of whole decades between the start and end of this interval.
lengthInMonths

common


val OffsetDateTimeInterval.lengthInMonths: Months

The number of whole months between the start and end of this interval.
lengthInWeeks

common


val OffsetDateTimeInterval.lengthInWeeks: Weeks

The number of whole weeks between the start and end of this interval.
lengthInYears

common


val OffsetDateTimeInterval.lengthInYears: Years

The number of whole years between the start and end of this interval.
random

common


fun OffsetDateTimeInterval.random(): OffsetDateTime

Returns a random date within this interval using the default random number generator. The offset of the start date-time will be used.

common


fun OffsetDateTimeInterval.random(random: Random): OffsetDateTime

Returns a random date within this interval using the supplied random number generator. The offset of the start date-time will be used.
randomOrNull

common


fun OffsetDateTimeInterval.randomOrNull(): OffsetDateTime?

Returns a random date within this interval using the default random number generator or null if the interval is empty or unbounded. The offset of the start date-time will be used.

common


fun OffsetDateTimeInterval.randomOrNull(random: Random): OffsetDateTime?

Returns a random date within this interval using the supplied random number generator or null if the interval is empty or unbounded. The offset of the start date-time will be used.
toDateRange

common


fun OffsetDateTimeInterval.toDateRange(): DateRange

Returns this interval with the precision reduced to just the date.
toDateTimeInterval

common


fun OffsetDateTimeInterval.toDateTimeInterval(): DateTimeInterval

Returns this interval with the precision reduced to only the local date and time.
toInstantInterval

common


fun OffsetDateTimeInterval.toInstantInterval(): InstantInterval

Converts this interval to an InstantInterval.
toPeriod

common


fun OffsetDateTimeInterval.toPeriod(): Period

Converts this interval into a Period of the same length.
toZonedDateTimeInterval

common


fun OffsetDateTimeInterval.toZonedDateTimeInterval(zone: TimeZone, strategy: OffsetConversionStrategy): ZonedDateTimeInterval

Converts this interval to a ZonedDateTimeInterval using the specified strategy to adjust each endpoint to a valid date, time, and offset in zone.