Noda Time
Show / Hide Table of Contents

Struct Interval

An interval between two instants in time (start and end).
Implements
IEquatable<Interval>
IXmlSerializable
ISerializable
Inherited Members
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetType()
Namespace: NodaTime
Assembly: NodaTime.dll
Syntax
[Serializable]
public struct Interval : IEquatable<Interval>, IXmlSerializable, ISerializable
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Constructors

Interval(Instant, Instant)

Initializes a new instance of the Interval struct. The interval includes the start instant and excludes the end instant. The end may equal the start (resulting in an empty interval), but must not be before the start.
Declaration
public Interval(Instant start, Instant end)
Parameters
Type Name Description
Instant start The start Instant.
Instant end The end Instant.
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Exceptions
Type Condition
ArgumentOutOfRangeException end is earlier than start.

Properties

Duration

Returns the duration of the interval.
Declaration
public Duration Duration { get; }
Property Value
Type Description
Duration The duration of the interval.
Remarks
This will always be a non-negative duration, though it may be zero.

End

Gets the end instant - the exclusive upper bound of the interval.
Declaration
public Instant End { get; }
Property Value
Type Description
Instant The end Instant.
Remarks
This will never be earlier than Start, though it may be equal to it. If this value is MaxValue, it is treated as an inclusive upper bound: an interval stretching to infinity includes the end of time.

Start

Gets the start instant - the inclusive lower bound of the interval.
Declaration
public Instant Start { get; }
Property Value
Type Description
Instant The start Instant.
Remarks
This will never be later than End, though it may be equal to it.

Methods

Contains(Instant)

Returns whether or not this interval contains the given instant.
Declaration
public bool Contains(Instant instant)
Parameters
Type Name Description
Instant instant Instant to test.
Returns
Type Description
Boolean True if this interval contains the given instant; false otherwise.
Remarks
The interval is considered to include the Start instant but not the End instant - unless the end is MaxValue, in which case it's considered to be infinite from the start point onwards.

Equals(Interval)

Indicates whether the value of this interval is equal to the value of the specified interval.
Declaration
public bool Equals(Interval other)
Parameters
Type Name Description
Interval other The value to compare with this instance.
Returns
Type Description
Boolean true if the value of this instant is equal to the value of the other parameter; otherwise, false.
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Equals(Object)

Determines whether the specified Object is equal to this instance.
Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
Object obj The Object to compare with this instance.
Returns
Type Description
Boolean true if the specified Object is equal to this instance; otherwise, false.
Overrides
ValueType.Equals(Object)
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

GetHashCode()

Returns the hash code for this instance.
Declaration
public override int GetHashCode()
Returns
Type Description
Int32 A 32-bit signed integer that is the hash code for this instance.
Overrides
ValueType.GetHashCode()
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

ToString()

Returns a string representation of this interval, in extended ISO-8601 format: the format is "start/end" where each instant uses a format of "yyyy'-'MM'-'dd'T'HH':'mm':'ss;FFFFFFF'Z'".
Declaration
public override string ToString()
Returns
Type Description
String A string representation of this interval.
Overrides
ValueType.ToString()
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Operators

Equality(Interval, Interval)

Implements the operator ==.
Declaration
public static bool operator ==(Interval left, Interval right)
Parameters
Type Name Description
Interval left The left.
Interval right The right.
Returns
Type Description
Boolean The result of the operator.
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Inequality(Interval, Interval)

Implements the operator !=.
Declaration
public static bool operator !=(Interval left, Interval right)
Parameters
Type Name Description
Interval left The left.
Interval right The right.
Returns
Type Description
Boolean The result of the operator.
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Explicit Interface Implementations

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Implementation of GetObjectData(SerializationInfo, StreamingContext).
Declaration
[SecurityCritical]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
SerializationInfo info The SerializationInfo to populate with data.
StreamingContext context The destination for this serialization.
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

IXmlSerializable.GetSchema()

Declaration
XmlSchema IXmlSerializable.GetSchema()
Returns
Type Description
XmlSchema
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

IXmlSerializable.ReadXml(XmlReader)

Declaration
void IXmlSerializable.ReadXml(XmlReader reader)
Parameters
Type Name Description
XmlReader reader
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

IXmlSerializable.WriteXml(XmlWriter)

Declaration
void IXmlSerializable.WriteXml(XmlWriter writer)
Parameters
Type Name Description
XmlWriter writer
Remarks

The interval includes the start instant and excludes the end instant, unless the end instant is MaxValue in which case it's deemed to be inclusive. (An interval stretching to infinity includes the end of time.)

The end may equal the start (resulting in an empty interval), but will not be before the start.

Implements

System.IEquatable<T>
System.Xml.Serialization.IXmlSerializable
System.Runtime.Serialization.ISerializable
In This Article
Back to top Generated by DocFX