• Guides
  • API Reference
  • Changelog
Show / Hide Table of Contents
  • DCR
    • EventKind
    • Expression
    • Flat
    • Graph
    • IEvent
    • Marking
    • NotEnabled
    • Path
    • TimeManager
    • Tools
    • UserNotAllowed
    • Value
  • DCR.Time
    • Duration
    • Timezones

Class Duration

Representation of ISO 8601 Durations

Inheritance
System.Object
Duration
Namespace: DCR.Time
Assembly: Time.dll
Syntax
public class Duration : Object

Constructors

Duration()

The default constructor produces the duration Zero

Declaration
public Duration()

Duration(Int32, Int32, Int32, Int32, Int32, Int32)

Declaration
public Duration(int years, int months, int days, int hours, int minutes, int seconds)
Parameters
Type Name Description
System.Int32 years
System.Int32 months
System.Int32 days
System.Int32 hours
System.Int32 minutes
System.Int32 seconds

Properties

Days

Declaration
public int Days { get; }
Property Value
Type Description
System.Int32

Hours

Declaration
public int Hours { get; }
Property Value
Type Description
System.Int32

Minutes

Declaration
public int Minutes { get; }
Property Value
Type Description
System.Int32

Months

Declaration
public int Months { get; }
Property Value
Type Description
System.Int32

Seconds

Declaration
public int Seconds { get; }
Property Value
Type Description
System.Int32

Years

Declaration
public int Years { get; }
Property Value
Type Description
System.Int32

Zero

The duration that makes no changes when added to or subtracted from dates or other durations

Declaration
public static Duration Zero { get; }
Property Value
Type Description
Duration

Methods

Equals(Object)

Declaration
public override bool Equals(object other)
Parameters
Type Name Description
System.Object other
Returns
Type Description
System.Boolean

FromDays(Int32)

Convenience function to produce a duration of k days

Declaration
public static Duration FromDays(int k)
Parameters
Type Name Description
System.Int32 k
Returns
Type Description
Duration

FromSeconds(Double)

Convert a number of seconds to a duration

Declaration
public static Duration FromSeconds(double s)
Parameters
Type Name Description
System.Double s

The number of seconds to convert

Returns
Type Description
Duration

FromTimeSpan(TimeSpan)

Convert a System.TimeSpan to a duration

Declaration
public static Duration FromTimeSpan(TimeSpan ts)
Parameters
Type Name Description
System.TimeSpan ts

The timespan to convert

Returns
Type Description
Duration

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32

IsNonNegative()

Return true if every part of the duration is non-negative

Declaration
public bool IsNonNegative()
Returns
Type Description
System.Boolean

True if every part (seconds, minutes, hours, days, years, months) of the duration is individually greater than or equal to zero, false otherwise.

Remarks

A duration may be net positive, yet return false for this call, e.g., P2M-1D.

IsNonPositive()

Return true if every part of the duration is non-positive

Declaration
public bool IsNonPositive()
Returns
Type Description
System.Boolean

True if every part (seconds, minutes, hours, days, years, months) of the duration is individually less than or equal to zero, false otherwise.

Remarks

A duration may be net negative, yet return false for this call, e.g., P-2M1D.

Negate()

Return the opposite duration, e.g., P3D becomes -P3D.

Declaration
public Duration Negate()
Returns
Type Description
Duration

Parse(String)

Parse a duration from a string

Declaration
public static Duration Parse(string s)
Parameters
Type Name Description
System.String s

The string to parse. The input should either be parseable by TimeSpan.Parse, or be on the following form:

[-]P[[-]ddddY][[-]ddM][[-]ddD][T[[-]ddH][[-]ddM][[-]ddS]]

Here d ranges over the digits 0-9, [] indicates optional components, and remaining characters are literals.

Returns
Type Description
Duration
Remarks

Values are not bounded by calendar limits; e.g., a month of 13 is fine.

Subtract(DateTimeOffset, DateTimeOffset)

Subtraction of dates, producing a duration

Declaration
public static Duration Subtract(DateTimeOffset u, DateTimeOffset v)
Parameters
Type Name Description
System.DateTimeOffset u
System.DateTimeOffset v
Returns
Type Description
Duration

The difference between the dates u and v. The resulting duration is partially normalised to seconds, minutes less than 60; hours less than 24. Days are not normalised.

ToInformalString()

Declaration
public string ToInformalString()
Returns
Type Description
System.String

ToString()

Declaration
public override string ToString()
Returns
Type Description
System.String

TryParse(String)

Like DCR.Time.Duration.Parse, but returns None rather than throwing if the input is on the wrong form.

Declaration
public static FSharpOption<Duration> TryParse(string s)
Parameters
Type Name Description
System.String s
Returns
Type Description
Microsoft.FSharp.Core.FSharpOption<Duration>

Operators

Addition(Duration, Duration)

Addition of durations

Declaration
public static Duration operator +(Duration u, Duration v)
Parameters
Type Name Description
Duration u
Duration v
Returns
Type Description
Duration

Addition(Duration, DateTimeOffset)

Addition of durations and dates; equivalent to addition of date and duration

Declaration
public static DateTimeOffset operator +(Duration u, DateTimeOffset v)
Parameters
Type Name Description
Duration u
System.DateTimeOffset v
Returns
Type Description
System.DateTimeOffset

Addition(DateTimeOffset, Duration)

Addition of dates and durations

Declaration
public static DateTimeOffset operator +(DateTimeOffset u, Duration v)
Parameters
Type Name Description
System.DateTimeOffset u
Duration v
Returns
Type Description
System.DateTimeOffset

Subtraction(Duration, Duration)

Subtraction of durations

Declaration
public static Duration operator -(Duration u, Duration v)
Parameters
Type Name Description
Duration u
Duration v
Returns
Type Description
Duration

Subtraction(DateTimeOffset, Duration)

Subtraction of dates and durations

Declaration
public static DateTimeOffset operator -(DateTimeOffset u, Duration v)
Parameters
Type Name Description
System.DateTimeOffset u
Duration v
Returns
Type Description
System.DateTimeOffset
In This Article
Back to top © 2019 DCR Solutions