| [Serializable] | 
A TimeSpan can be represented as a string in the format "[-]d.hh:mm:ss.ff" where "-" is an optional sign for negative TimeSpan values, the "d" component is days, "hh" is hours, "mm" is minutes, "ss" is seconds, and "ff" is fractions of a second. For example, a TimeSpan initialized with 1012 ticks would be represented as "11.13:46:40", which is 11 days, 13 hours, 46 minutes, and 40 seconds.
Due to a varying number of days in months and years, the longest unit of time that is used by TimeSpan is the day.
This value type implements the IComparable interface.
| ctor #1 | Overloaded: .ctor(long ticks)Initializes a new  TimeSpan to the specified number of ticks. | 
| ctor #2 | Overloaded: .ctor(int hours, int minutes, int seconds)Initializes a new  TimeSpan to a specified number of hours, minutes, and seconds. | 
| ctor #3 | Overloaded: .ctor(int days, int hours, int minutes, int seconds)Initializes a new  TimeSpan to a specified number of days, hours, minutes, and seconds. | 
| ctor #4 | Overloaded: .ctor(int days, int hours, int minutes, int seconds, int milliseconds)Initializes a new  TimeSpan to a specified number of days, hours, minutes, seconds, and milliseconds. | 
| MaxValue | Represents the maximum TimeSpan value. This field is read-only. | 
| MinValue | Represents the minimum TimeSpan value. This field is read-only. | 
| TicksPerDay | Represents the number of ticks in 1 day. This field is constant. | 
| TicksPerHour | Represents the number of ticks in 1 hour. This field is constant. | 
| TicksPerMillisecond | Represents the number of ticks in 1 millisecond. This field is constant. | 
| TicksPerMinute | Represents the number of ticks in 1 minute. This field is constant. | 
| TicksPerSecond | Represents the number of ticks in 1 second. | 
| Zero | Represents the zero TimeSpan value. This field is read-only. | 
| Days | Read-only Gets the number of whole days represented by this instance. | 
| Hours | Read-only Gets the number of whole hours represented by this instance. | 
| Milliseconds | Read-only Gets the number of whole milliseconds represented by this instance. | 
| Minutes | Read-only Gets the number of whole minutes represented by this instance. | 
| Seconds | Read-only Gets the number of whole seconds represented by this instance. | 
| Ticks | Read-only Gets the value of this instance in ticks. | 
| TotalDays | Read-only Gets the value of this instance expressed in whole and fractional days. | 
| TotalHours | Read-only Gets the value of this instance expressed in whole and fractional hours. | 
| TotalMilliseconds | Read-only Gets the value of this instance expressed in whole and fractional milliseconds. | 
| TotalMinutes | Read-only Gets the value of this instance expressed in whole and fractional minutes. | 
| TotalSeconds | Read-only Gets the value of this instance expressed in whole and fractional seconds. | 
| Add | Adds the specified TimeSpan to this instance. | 
| Compare | Compares two TimeSpan values and returns an integer that indicates their relationship. | 
| CompareTo | Compares this instance to a specified object and returns an indication of their relative values. | 
| Duration | Returns a TimeSpan whose value is the absolute value of this instance. | 
| Equals | Overloaded: Equals(object value)Overridden:Returns a value indicating whether this instance is equal to a specified object. | 
| Equals | Overloaded: Equals(TimeSpan t1, TimeSpan t2)Returns a value indicating whether two specified instances of  TimeSpan are equal. | 
| FromDays | Returns a TimeSpan that represents a specified number of days, where the specification is accurate to the nearest millisecond. | 
| FromHours | Returns a TimeSpan that represents a specified number of hours, where the specification is accurate to the nearest millisecond. | 
| FromMilliseconds | Returns a TimeSpan that represents a specified number of milliseconds. | 
| FromMinutes | Returns a TimeSpan that represents a specified number of minutes, where the specification is accurate to the nearest millisecond. | 
| FromSeconds | Returns a TimeSpan that represents a specified number of seconds, where the specification is accurate to the nearest millisecond. | 
| FromTicks | Returns a TimeSpan that represents a specified time, where the specification is in units of ticks. | 
| GetHashCode | Overridden: Returns a hash code for this instance. | 
| GetType (inherited from System.Object) | See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. | 
| Negate | Returns a TimeSpan whose value is the negated value of this instance. | 
| Parse | Constructs a TimeSpan from a time indicated by a specified string. | 
| Subtract | Subtracts the specified TimeSpan from this instance. | 
| ToString | Overridden: Returns the string representation of the value of this instance. | 
| op_Addition | Adds two specified TimeSpan instances. | 
| op_Equality | Indicates whether two TimeSpan instances are equal. | 
| op_GreaterThan | Indicates whether a specified TimeSpan is greater than another specified TimeSpan. | 
| op_GreaterThanOrEqual | Indicates whether a specified TimeSpan is greater than or equal to another specified TimeSpan. | 
| op_Inequality | Indicates whether two TimeSpan instances are not equal. | 
| op_LessThan | Indicates whether a specified TimeSpan is less than another specified TimeSpan. | 
| op_LessThanOrEqual | Indicates whether a specified TimeSpan is less than or equal to another specified TimeSpan. | 
| op_Subtraction | Subtracts a specified TimeSpan from another specified TimeSpan. | 
| op_UnaryNegation | Returns a TimeSpan whose value is the negated value of the specified instance. | 
| op_UnaryPlus | Returns the specified instance of TimeSpan. | 
| Finalize (inherited from System.Object) | See base class member description: System.Object.Finalize Derived from System.Object, the primary base class for all objects. | 
| MemberwiseClone (inherited from System.Object) | See base class member description: System.Object.MemberwiseClone Derived from System.Object, the primary base class for all objects. | 
Hierarchy:
| 
            public TimeSpan( | 
ticks
hours
minutes
seconds
| Exception Type | Condition | 
|---|---|
| ArgumentOutOfRangeException | The parameters specify a TimeSpan value less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
This constructor accepts TimeSpan values in the range of TimeSpan.MinValue + 5808 ticks (that is, negative 10675199.02:48:05.477) to TimeSpan.MaxValue - 5808 ticks (that is, positive 10675199.02:48:05.477).
days
hours
minutes
seconds
| Exception Type | Condition | 
|---|---|
| ArgumentOutOfRangeException | The parameters specify a TimeSpan value less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
This constructor accepts TimeSpan values in the range of TimeSpan.MinValue + 5808 ticks (that is, negative 10675199.02:48:05.477) to TimeSpan.MaxValue - 5808 ticks (that is, positive 10675199.02:48:05.477).
days
hours
minutes
seconds
milliseconds
| Exception Type | Condition | 
|---|---|
| ArgumentOutOfRangeException | The parameters specify a TimeSpan value less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
This constructor accepts TimeSpan values in the range of TimeSpan.MinValue + 5808 ticks (that is, negative 10675199.02:48:05.477) to TimeSpan.MaxValue - 5808 ticks (that is, positive 10675199.02:48:05.477).
| 
            public static readonly TimeSpan MaxValue;
           | 
| 
            public static readonly TimeSpan MinValue;
           | 
| 
            public const long TicksPerDay;
           | 
| 
            public const long TicksPerHour;
           | 
| 
            public const long TicksPerMillisecond;
           | 
| 
            public const long TicksPerMinute;
           | 
| 
            public const long TicksPerSecond;
           | 
| 
            public static readonly TimeSpan Zero;
           | 
| 
            public int Days {get;}
           | 
| 
            public int Hours {get;}
           | 
| 
            public int Milliseconds {get;}
           | 
For example, the instruction,
                Console.WriteLine("{0}",
                System.TimeSpan.MaxValue.ToString());
              
yields the string, "10675199.02:48:05.4775807", where the "4775807" part is 477.5807 milliseconds. While the instruction,
                Console.WriteLine("{0}",
                System.TimeSpan.MaxValue.Milliseconds.ToString());
              
just yields the string, "477", which is 477 milliseconds.
| 
            public int Minutes {get;}
           | 
| 
            public int Seconds {get;}
           | 
| 
            public long Ticks {get;}
           | 
| 
            public double TotalDays {get;}
           | 
| 
            public double TotalHours {get;}
           | 
| 
            public double TotalMilliseconds {get;}
           | 
| 
            public double TotalMinutes {get;}
           | 
| 
            public double TotalSeconds {get;}
           | 
ts
| Exception Type | Condition | 
|---|---|
| OverflowException | The resulting TimeSpan is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
The return value is a new TimeSpan; the original TimeSpan is not modified.
t1
t2
| Value | Condition | 
|---|---|
| -1 | is less than | 
| 0 | is equal to | 
| 1 | is greater than | 
value
| Value | Condition | 
|---|---|
| -1 | The value of this instance is less than the value of . | 
| 0 | The value of this instance is equal to the value of . | 
| 1 | The value of this instance is greater than the value of value. -or- value is null. | 
| Exception Type | Condition | 
|---|---|
| ArgumentException | value is not a TimeSpan. | 
The value parameter must be an instance of TimeSpan or null; otherwise, an exception is thrown.
| 
            public TimeSpan Duration(); | 
| Exception Type | Condition | 
|---|---|
| OverflowException | The value of this instance is TimeSpan.MinValue. | 
value
t1
t2
| 
            ~TimeSpan(); | 
value
| Exception Type | Condition | 
|---|---|
| OverflowException | value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
| ArgumentException | value is equal to Double.NaN. | 
If value is Double.PositiveInfinity, TimeSpan.MaxValue is returned. If value is Double.NegativeInfinity or Double.NaN, TimeSpan.MinValue is returned.
value
| Exception Type | Condition | 
|---|---|
| OverflowException | value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
| ArgumentException | value is equal to Double.NaN. | 
If value is Double.PositiveInfinity, TimeSpan.MaxValue is returned. If value is Double.NegativeInfinity or Double.NaN, TimeSpan.MinValue is returned.
value
| Exception Type | Condition | 
|---|---|
| OverflowException | value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
| ArgumentException | value is equal to Double.NaN. | 
If value is Double.PositiveInfinity, TimeSpan.MaxValue is returned. If value is Double.NegativeInfinity or Double.NaN, TimeSpan.MinValue is returned.
value
| Exception Type | Condition | 
|---|---|
| OverflowException | value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
| ArgumentException | value is equal to Double.NaN. | 
If value is Double.PositiveInfinity, TimeSpan.MaxValue is returned. If value is Double.NegativeInfinity or Double.NaN, TimeSpan.MinValue is returned.
value
| Exception Type | Condition | 
|---|---|
| OverflowException | value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
| ArgumentException | value is equal to Double.NaN. | 
If value is Double.PositiveInfinity, TimeSpan.MaxValue is returned. If value is Double.NegativeInfinity or Double.NaN, TimeSpan.MinValue is returned.
value
| 
            public override int GetHashCode(); | 
| 
            public Type GetType(); | 
| 
            protected object MemberwiseClone(); | 
| 
            public TimeSpan Negate(); | 
| Exception Type | Condition | 
|---|---|
| OverflowException | The negated value of this instance cannot be represented by a TimeSpan; that is, the value of this instance is TimeSpan.MinValue. | 
t1
t2
| Exception Type | Condition | 
|---|---|
| OverflowException | The resulting TimeSpan is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
t1
t2
t1
t2
t1
t2
t1
t2
t1
t2
t1
t2
t1
t2
| Exception Type | Condition | 
|---|---|
| OverflowException | The return value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
| 
            public static TimeSpan operator -( | 
t
| Exception Type | Condition | 
|---|---|
| OverflowException | The negated value of this instance cannot be represented by a TimeSpan; that is, the value of this instance is TimeSpan.MinValue. | 
| 
            public static TimeSpan operator +( | 
t
s
| Exception Type | Condition | 
|---|---|
| ArgumentNullException | s is null. | 
| FormatException | s has an invalid format. | 
| OverflowException | s represents a number less than  TimeSpan.MinValue or greater than  TimeSpan.MaxValue. -or- At least one of the hours, minutes, or seconds components is outside its valid range. | 
[ws][-][d.]hh:mm:ss[.ff][ws]
Items in square brackets ([ and ]) are optional, colons and periods (: and .) are literal characters, and other items are as follows.
| Item | Description | 
|---|---|
| ws | optional white space | 
| "-" | optional minus sign indicating a negative time | 
| "d" | optional days | 
| "hh" | hours, ranging from 0 to 23 | 
| "mm" | minutes, ranging from 0 to 59 | 
| "ss" | seconds, ranging from 0 to 59 | 
| "ff" | optional fractional seconds, from 1 to 7 decimal digits | 
ts
| Exception Type | Condition | 
|---|---|
| OverflowException | The return value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. | 
The return value is a new TimeSpan; the original TimeSpan is not modified.
| 
            public override string ToString(); | 
[-][d.]hh:mm:ss[.ff]
Items in square brackets ([ and ]) are optional, colons and periods (: and .) are literal characters; and the other items are as follows.
| Item | Description | 
|---|---|
| "-" | optional minus sign indicating a negative time | 
| "d" | optional days | 
| "hh" | hours, ranging from 0 to 23 | 
| "mm" | minutes, ranging from 0 to 59 | 
| "ss" | seconds, ranging from 0 to 59 | 
| "ff" | optional fractional seconds, from 1 to 7 decimal digits |