Class ZoneInterval
Represents a range of time for which a particular Offset applies.
Since 1.0.x
Availability net6.0, netstandard2.0
Inheritance
Object
ZoneInterval
Implements
IEquatable<ZoneInterval>
Inherited Members
Object.Equals(Object, Object)
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Namespace: NodaTime.TimeZones
Assembly: NodaTime.dll
Syntax
public sealed class ZoneInterval : IEquatable<ZoneInterval>
Remarks
Equality is defined component-wise in terms of all properties: the name, the start and end, and the offsets. There is no ordering defined between zone intervals.
Constructors
ZoneInterval(String, Nullable<Instant>, Nullable<Instant>, Offset, Offset)
Initializes a new instance of the ZoneInterval class.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public ZoneInterval(string name, Instant? start, Instant? end, Offset wallOffset, Offset savings)
Parameters
| Type | Name | Description |
|---|---|---|
| String | name | The name of this offset period (e.g. PST or PDT). |
| Nullable<Instant> | start | The first Instant that the wallOffset applies,
or null to make the zone interval extend to the start of time. |
| Nullable<Instant> | end | The last Instant (exclusive) that the wallOffset applies,
or null to make the zone interval extend to the end of time. |
| Offset | wallOffset | The WallOffset from UTC for this period including any daylight savings. |
| Offset | savings | The WallOffset daylight savings contribution to the offset. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | If . |
Properties
Duration
Gets the duration of this zone interval.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public Duration Duration { get; }
Property Value
| Type | Description |
|---|---|
| Duration | The Duration of this zone interval. |
Remarks
This is effectively
End - Start.
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | This zone extends to the start or end of time. |
End
Gets the last Instant (exclusive) that the Offset applies.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public Instant End { get; }
Property Value
| Type | Description |
|---|---|
| Instant | The last Instant (exclusive) that the Offset applies. |
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | The zone interval extends to the end of time |
HasEnd
Returns
true if this zone interval has a fixed end point, or false if it
extends to the end of time.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public bool HasEnd { get; }
Property Value
| Type | Description |
|---|---|
| Boolean | true if this interval has a fixed end point, or false if it
extends to the end of time. |
HasStart
Returns
true if this zone interval has a fixed start point, or false if it
extends to the beginning of time.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public bool HasStart { get; }
Property Value
| Type | Description |
|---|---|
| Boolean | true if this interval has a fixed start point, or false if it
extends to the beginning of time. |
IsoLocalEnd
Gets the local end time of the interval, as a LocalDateTime
in the ISO calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public LocalDateTime IsoLocalEnd { get; }
Property Value
| Type | Description |
|---|---|
| LocalDateTime | The local end time of the interval in the ISO calendar, with the offset of this zone interval. As the end time is exclusive, by the time this local time is reached, the next interval will be in effect and the local time will usually have changed (e.g. by adding or subtracting an hour). |
Exceptions
| Type | Condition |
|---|---|
| System.OverflowException | The interval ends too late to represent as a `LocalDateTime`. |
| System.InvalidOperationException | The interval extends to the end of time. |
IsoLocalStart
Gets the local start time of the interval, as a LocalDateTime
in the ISO calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public LocalDateTime IsoLocalStart { get; }
Property Value
| Type | Description |
|---|---|
| LocalDateTime | The local start time of the interval in the ISO calendar, with the offset of this zone interval. |
Exceptions
| Type | Condition |
|---|---|
| System.OverflowException | The interval starts too early to represent as a `LocalDateTime`. |
| System.InvalidOperationException | The interval extends to the start of time. |
Name
Gets the name of this offset period (e.g. PST or PDT).
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public string Name { get; }
Property Value
| Type | Description |
|---|---|
| String | The name of this offset period (e.g. PST or PDT). |
Savings
Gets the daylight savings value for this period.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public Offset Savings { get; }
Property Value
| Type | Description |
|---|---|
| Offset | The savings value. |
StandardOffset
Gets the standard offset for this period. This is the offset without any daylight savings
contributions.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public Offset StandardOffset { get; }
Property Value
| Type | Description |
|---|---|
| Offset | The base Offset. |
Remarks
This is effectively
WallOffset - Savings.
Start
Gets the first Instant that the Offset applies.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public Instant Start { get; }
Property Value
| Type | Description |
|---|---|
| Instant | The first Instant that the Offset applies. |
Exceptions
| Type | Condition |
|---|---|
| System.InvalidOperationException | The interval extends to the start of time. |
WallOffset
Gets the offset from UTC for this period. This includes any daylight savings value.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public Offset WallOffset { get; }
Property Value
| Type | Description |
|---|---|
| Offset | The offset from UTC for this period. |
Methods
Contains(Instant)
Determines whether this period contains the given Instant in its range.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public bool Contains(Instant instant)
Parameters
| Type | Name | Description |
|---|---|---|
| Instant | instant | The instant to test. |
Returns
| Type | Description |
|---|---|
| Boolean |
true if this period contains the given Instant in its range; otherwise, false.
|
Remarks
Usually this is half-open, i.e. the end is exclusive, but an interval with an end point of "the end of time"
is deemed to be inclusive at the end.
Equals(ZoneInterval)
Indicates whether the current object is equal to another object of the same type.
See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public bool Equals(ZoneInterval other)
Parameters
| Type | Name | Description |
|---|---|---|
| ZoneInterval | other | An object to compare with this object. |
Returns
| Type | Description |
|---|---|
| Boolean |
true if the current object is equal to the other parameter; otherwise, false.
|
Equals(Object)
Determines whether the specified System.Object is equal to the current System.Object.
See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public override bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | obj | The System.Object to compare with the current System.Object. |
Returns
| Type | Description |
|---|---|
| Boolean |
true if the specified System.Object is equal to the current System.Object; otherwise, false.
|
Overrides
System.Object.Equals(System.Object)
GetHashCode()
Returns a hash code for this zone interval.
See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 | A hash code for this zone interval. |
Overrides
System.Object.GetHashCode()
ToString()
Returns a System.String that represents this instance.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String | A System.String that represents this instance. |
Overrides
System.Object.ToString()
Operators
Equality(ZoneInterval, ZoneInterval)
Implements the operator == (equality).
See the type documentation for a description of equality semantics.
Since 3.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator ==(ZoneInterval left, ZoneInterval right)
Parameters
| Type | Name | Description |
|---|---|---|
| ZoneInterval | left | The left hand side of the operator. |
| ZoneInterval | right | The right hand side of the operator. |
Returns
| Type | Description |
|---|---|
| Boolean | true if values are equal to each other, otherwise false. |
Inequality(ZoneInterval, ZoneInterval)
Implements the operator != (inequality).
See the type documentation for a description of equality semantics.
Since 3.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator !=(ZoneInterval left, ZoneInterval right)
Parameters
| Type | Name | Description |
|---|---|---|
| ZoneInterval | left | The left hand side of the operator. |
| ZoneInterval | right | The right hand side of the operator. |
Returns
| Type | Description |
|---|---|
| Boolean | true if values are not equal to each other, otherwise false. |
Implements
System.IEquatable<T>