ZonedDateTimeInterval

class ZonedDateTimeInterval(start: ZonedDateTime, endExclusive: ZonedDateTime) : TimePointInterval<ZonedDateTime>

A half-open interval of zoned date-times based on timeline order.

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

Constructors

ZonedDateTimeInterval
Link copied to clipboard
common
fun ZonedDateTimeInterval(start: ZonedDateTime = UNBOUNDED.start, endExclusive: ZonedDateTime = UNBOUNDED.endExclusive)

Types

Companion
Link copied to clipboard
common
object Companion

Functions

contains
Link copied to clipboard
common
open operator override fun contains(value: ZonedDateTime): Boolean

Checks if this interval contains value.

equals
Link copied to clipboard
common
open operator override fun equals(other: Any?): Boolean
hasBoundedEnd
Link copied to clipboard
common
open fun hasBoundedEnd(): Boolean

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

hasBoundedStart
Link copied to clipboard
common
open fun hasBoundedStart(): Boolean

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

hashCode
Link copied to clipboard
common
open override fun hashCode(): Int
hasUnboundedEnd
Link copied to clipboard
common
open override fun hasUnboundedEnd(): Boolean

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

hasUnboundedStart
Link copied to clipboard
common
open override fun hasUnboundedStart(): Boolean

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

isBounded
Link copied to clipboard
common
open fun isBounded(): Boolean

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

isEmpty
Link copied to clipboard
common
open override fun isEmpty(): Boolean

Checks if this interval is empty.

isUnbounded
Link copied to clipboard
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
Link copied to clipboard
common
open override fun toString(): String

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

Properties

endExclusive
Link copied to clipboard
common
open override val endExclusive: ZonedDateTime

The end of this interval, exclusive.

endInclusive
Link copied to clipboard
common
open override val endInclusive: ZonedDateTime

The end of this interval, inclusive.

start
Link copied to clipboard
common
open override val start: ZonedDateTime

The start of this interval, inclusive.

Extensions

lengthInCenturies
Link copied to clipboard
common
val ZonedDateTimeInterval.lengthInCenturies: Centuries

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

lengthInDays
Link copied to clipboard
common
val ZonedDateTimeInterval.lengthInDays: Days

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

lengthInDecades
Link copied to clipboard
common
val ZonedDateTimeInterval.lengthInDecades: Decades

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

lengthInMonths
Link copied to clipboard
common
val ZonedDateTimeInterval.lengthInMonths: Months

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

lengthInWeeks
Link copied to clipboard
common
val ZonedDateTimeInterval.lengthInWeeks: Weeks

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

lengthInYears
Link copied to clipboard
common
val ZonedDateTimeInterval.lengthInYears: Years

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

random
Link copied to clipboard
common
fun ZonedDateTimeInterval.random(): ZonedDateTime

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

fun ZonedDateTimeInterval.random(random: Random): ZonedDateTime

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

randomOrNull
Link copied to clipboard
common
fun ZonedDateTimeInterval.randomOrNull(): ZonedDateTime?

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

fun ZonedDateTimeInterval.randomOrNull(random: Random): ZonedDateTime?

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

toDateRange
Link copied to clipboard
common
fun ZonedDateTimeInterval.toDateRange(): DateRange

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

toDateTimeInterval
Link copied to clipboard
common

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

toInstantInterval
Link copied to clipboard
common
fun ZonedDateTimeInterval.toInstantInterval(): InstantInterval

Converts this interval to an InstantInterval.

toOffsetDateTimeInterval
Link copied to clipboard
common

Converts this interval to an OffsetDateTimeInterval.

toPeriod
Link copied to clipboard
common
fun ZonedDateTimeInterval.toPeriod(): Period

Converts this interval into a Period of the same length.