Edit

Share via


TimeSpan Struct

Definition

Represents a time interval.

C#
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
C#
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
C#
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, ISpanFormattable
C#
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IParsable<TimeSpan>, ISpanFormattable, ISpanParsable<TimeSpan>
C#
public readonly struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IParsable<TimeSpan>, ISpanFormattable, ISpanParsable<TimeSpan>, IUtf8SpanFormattable
C#
[System.Serializable]
public struct TimeSpan : IComparable
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
Inheritance
TimeSpan
Attributes
Implements

Examples

The following example instantiates a TimeSpan object that represents the difference between two dates. It then displays the TimeSpan object's properties.

C#
// Define two dates.
DateTime date1 = new DateTime(2010, 1, 1, 8, 0, 15);
DateTime date2 = new DateTime(2010, 8, 18, 13, 30, 30);

// Calculate the interval between the two dates.
TimeSpan interval = date2 - date1;
Console.WriteLine("{0} - {1} = {2}", date2, date1, interval.ToString());

// Display individual properties of the resulting TimeSpan object.
Console.WriteLine("   {0,-35} {1,20}", "Value of Days Component:", interval.Days);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Days:", interval.TotalDays);
Console.WriteLine("   {0,-35} {1,20}", "Value of Hours Component:", interval.Hours);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Hours:", interval.TotalHours);
Console.WriteLine("   {0,-35} {1,20}", "Value of Minutes Component:", interval.Minutes);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Minutes:", interval.TotalMinutes);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Seconds Component:", interval.Seconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Seconds:", interval.TotalSeconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Milliseconds Component:", interval.Milliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Milliseconds:", interval.TotalMilliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Ticks:", interval.Ticks);

// This example displays the following output:
//       8/18/2010 1:30:30 PM - 1/1/2010 8:00:15 AM = 229.05:30:15
//          Value of Days Component:                             229
//          Total Number of Days:                   229.229340277778
//          Value of Hours Component:                              5
//          Total Number of Hours:                  5501.50416666667
//          Value of Minutes Component:                           30
//          Total Number of Minutes:                       330090.25
//          Value of Seconds Component:                           15
//          Total Number of Seconds:                      19,805,415
//          Value of Milliseconds Component:                       0
//          Total Number of Milliseconds:             19,805,415,000
//          Ticks:                               198,054,150,000,000
PowerShell
# Define two dates.
$Date2 = Get-Date -Date '2010/8/18' -Hour 13 -Minute 30 -Second 30
$Date1 = Get-Date -Date '2010/1/1'  -Hour 8  -Minute 0  -Second 15

# Calculate the interval between the two dates.
$Interval = $Date2 - $Date1
"{0} - {1} = {2}" -f $Date2, $Date1, ($Interval.ToString())

#  Display individual properties of the resulting TimeSpan object.
"   {0,-35} {1,20}"    -f "Value of Days Component:", $Interval.Days
"   {0,-35} {1,20}"    -f "Total Number of Days:", $Interval.TotalDays
"   {0,-35} {1,20}"    -f "Value of Hours Component:", $Interval.Hours
"   {0,-35} {1,20}"    -f "Total Number of Hours:", $Interval.TotalHours
"   {0,-35} {1,20}"    -f "Value of Minutes Component:", $Interval.Minutes
"   {0,-35} {1,20}"    -f "Total Number of Minutes:", $Interval.TotalMinutes
"   {0,-35} {1,20:N0}" -f "Value of Seconds Component:", $Interval.Seconds
"   {0,-35} {1,20:N0}" -f "Total Number of Seconds:", $Interval.TotalSeconds
"   {0,-35} {1,20:N0}" -f "Value of Milliseconds Component:", $Interval.Milliseconds
"   {0,-35} {1,20:N0}" -f "Total Number of Milliseconds:", $Interval.TotalMilliseconds
"   {0,-35} {1,20:N0}" -f "Ticks:", $Interval.Ticks

<# This sample produces the following output:

18/08/2010 13:30:30 - 01/01/2010 08:00:15 = 229.05:30:15
   Value of Days Component:                             229
   Total Number of Days:                   229.229340277778
   Value of Hours Component:                              5
   Total Number of Hours:                  5501.50416666667
   Value of Minutes Component:                           30
   Total Number of Minutes:                       330090.25
   Value of Seconds Component:                           15
   Total Number of Seconds:                      19,805,415
   Value of Milliseconds Component:                       0
   Total Number of Milliseconds:             19,805,415,000
   Ticks:                               198,054,150,000,000
#>

Remarks

For more information about this API, see Supplemental API remarks for TimeSpan.

Constructors

TimeSpan(Int32, Int32, Int32, Int32, Int32, Int32)

Initializes a new instance of the TimeSpan structure to a specified number of days, hours, minutes, seconds, milliseconds, and microseconds.

TimeSpan(Int32, Int32, Int32, Int32, Int32)

Initializes a new instance of the TimeSpan structure to a specified number of days, hours, minutes, seconds, and milliseconds.

TimeSpan(Int32, Int32, Int32, Int32)

Initializes a new instance of the TimeSpan structure to a specified number of days, hours, minutes, and seconds.

TimeSpan(Int32, Int32, Int32)

Initializes a new instance of the TimeSpan structure to a specified number of hours, minutes, and seconds.

TimeSpan(Int64)

Initializes a new instance of the TimeSpan structure to the specified number of ticks.

Fields

HoursPerDay

Represents the number of hours in 1 day. This field is constant.

MaxValue

Represents the maximum TimeSpan value. This field is read-only.

MicrosecondsPerDay

Represents the number of microseconds in 1 day. This field is constant.

MicrosecondsPerHour

Represents the number of microseconds in 1 hour. This field is constant.

MicrosecondsPerMillisecond

Represents the number of microseconds in 1 millisecond. This field is constant.

MicrosecondsPerMinute

Represents the number of microseconds in 1 minute. This field is constant.

MicrosecondsPerSecond

Represents the number of microseconds in 1 second. This field is constant.

MillisecondsPerDay

Represents the number of milliseconds in 1 day. This field is constant.

MillisecondsPerHour

Represents the number of milliseconds in 1 hour. This field is constant.

MillisecondsPerMinute

Represents the number of milliseconds in 1 minute. This field is constant.

MillisecondsPerSecond

Represents the number of milliseconds in 1 second. This field is constant.

MinutesPerDay

Represents the number of minutes in 1 day. This field is constant.

MinutesPerHour

Represents the number of minutes in 1 hour. This field is constant.

MinValue

Represents the minimum TimeSpan value. This field is read-only.

NanosecondsPerTick

Represents the number of nanoseconds per tick. This field is constant.

SecondsPerDay

Represents the number of seconds in 1 day. This field is constant.

SecondsPerHour

Represents the number of seconds in 1 hour. This field is constant.

SecondsPerMinute

Represents the number of seconds in 1 minute. This field is constant.

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.

TicksPerMicrosecond

Represents the number of ticks in 1 microsecond. 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.

Properties

Days

Gets the days component of the time interval represented by the current TimeSpan structure.

Hours

Gets the hours component of the time interval represented by the current TimeSpan structure.

Microseconds

Gets the microseconds component of the time interval represented by the current TimeSpan structure.

Milliseconds

Gets the milliseconds component of the time interval represented by the current TimeSpan structure.

Minutes

Gets the minutes component of the time interval represented by the current TimeSpan structure.

Nanoseconds

Gets the nanoseconds component of the time interval represented by the current TimeSpan structure.

Seconds

Gets the seconds component of the time interval represented by the current TimeSpan structure.

Ticks

Gets the number of ticks that represent the value of the current TimeSpan structure.

TotalDays

Gets the value of the current TimeSpan structure expressed in whole and fractional days.

TotalHours

Gets the value of the current TimeSpan structure expressed in whole and fractional hours.

TotalMicroseconds

Gets the value of the current TimeSpan structure expressed in whole and fractional microseconds.

TotalMilliseconds

Gets the value of the current TimeSpan structure expressed in whole and fractional milliseconds.

TotalMinutes

Gets the value of the current TimeSpan structure expressed in whole and fractional minutes.

TotalNanoseconds

Gets the value of the current TimeSpan structure expressed in whole and fractional nanoseconds.

TotalSeconds

Gets the value of the current TimeSpan structure expressed in whole and fractional seconds.

Methods

Add(TimeSpan)

Returns a new TimeSpan object whose value is the sum of the specified TimeSpan object and this instance.

Compare(TimeSpan, TimeSpan)

Compares two TimeSpan values and returns an integer that indicates whether the first value is shorter than, equal to, or longer than the second value.

CompareTo(Object)

Compares this instance to a specified object and returns an integer that indicates whether this instance is shorter than, equal to, or longer than the specified object.

CompareTo(TimeSpan)

Compares this instance to a specified TimeSpan object and returns an integer that indicates whether this instance is shorter than, equal to, or longer than the TimeSpan object.

Divide(Double)

Returns a new TimeSpan object whose value is the result of dividing this instance by the specified divisor.

Divide(TimeSpan)

Returns a new Double value that's the result of dividing this instance by ts.

Duration()

Returns a new TimeSpan object whose value is the absolute value of the current TimeSpan object.

Equals(Object)

Returns a value indicating whether this instance is equal to a specified object.

Equals(TimeSpan, TimeSpan)

Returns a value that indicates whether two specified instances of TimeSpan are equal.

Equals(TimeSpan)

Returns a value indicating whether this instance is equal to a specified TimeSpan object.

FromDays(Double)

Returns a TimeSpan that represents a specified number of days, where the specification is accurate to the nearest millisecond.

FromDays(Int32, Int32, Int64, Int64, Int64, Int64)

Initializes a new instance of the TimeSpan structure to a specified number of days, hours, minutes, seconds, milliseconds, and microseconds.

FromDays(Int32)

Initializes a new instance of the TimeSpan structure to a specified number of days.

FromHours(Double)

Returns a TimeSpan that represents a specified number of hours, where the specification is accurate to the nearest millisecond.

FromHours(Int32, Int64, Int64, Int64, Int64)

Initializes a new instance of the TimeSpan structure to a specified number of hours, minutes, seconds, milliseconds, and microseconds.

FromHours(Int32)

Initializes a new instance of the TimeSpan structure to a specified number of hours.

FromMicroseconds(Double)

Returns a TimeSpan that represents a specified number of microseconds.

FromMicroseconds(Int64)

Initializes a new instance of the TimeSpan structure to a specified number of microseconds.

FromMilliseconds(Double)

Returns a TimeSpan that represents a specified number of milliseconds.

FromMilliseconds(Int64, Int64)

Initializes a new instance of the TimeSpan structure to a specified number of milliseconds, and microseconds.

FromMinutes(Double)

Returns a TimeSpan that represents a specified number of minutes, where the specification is accurate to the nearest millisecond.

FromMinutes(Int64, Int64, Int64, Int64)

Initializes a new instance of the TimeSpan structure to a specified number of minutes, seconds, milliseconds, and microseconds.

FromMinutes(Int64)

Initializes a new instance of the TimeSpan structure to a specified number of minutes.

FromSeconds(Double)

Returns a TimeSpan that represents a specified number of seconds, where the specification is accurate to the nearest millisecond.

FromSeconds(Int64, Int64, Int64)

Initializes a new instance of the TimeSpan structure to a specified number of seconds, milliseconds, and microseconds.

FromSeconds(Int64)

Initializes a new instance of the TimeSpan structure to a specified number of seconds.

FromTicks(Int64)

Returns a TimeSpan that represents a specified time, where the specification is in units of ticks.

GetHashCode()

Returns a hash code for this instance.

Multiply(Double)

Returns a new TimeSpan object which value is the result of multiplication of this instance and the specified factor.

Negate()

Returns a new TimeSpan object whose value is the negated value of this instance.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Converts the span representation of a time interval to its TimeSpan equivalent by using the specified culture-specific format information.

Parse(String, IFormatProvider)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified culture-specific format information.

Parse(String)

Converts the string representation of a time interval to its TimeSpan equivalent.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpanStyles)

Converts the char span of a time interval to its TimeSpan equivalent by using the specified format and culture-specific format information. The format of the string representation must match the specified format exactly.

ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpanStyles)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified formats, culture-specific format information, and styles. The format of the string representation must match one of the specified formats exactly.

ParseExact(String, String, IFormatProvider, TimeSpanStyles)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified format, culture-specific format information, and styles. The format of the string representation must match the specified format exactly.

ParseExact(String, String, IFormatProvider)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified format and culture-specific format information. The format of the string representation must match the specified format exactly.

ParseExact(String, String[], IFormatProvider, TimeSpanStyles)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified formats, culture-specific format information, and styles. The format of the string representation must match one of the specified formats exactly.

ParseExact(String, String[], IFormatProvider)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified array of format strings and culture-specific format information. The format of the string representation must match one of the specified formats exactly.

Subtract(TimeSpan)

Returns a new TimeSpan object whose value is the difference between the specified TimeSpan object and this instance.

ToString()

Converts the value of the current TimeSpan object to its equivalent string representation.

ToString(String, IFormatProvider)

Converts the value of the current TimeSpan object to its equivalent string representation by using the specified format and culture-specific formatting information.

ToString(String)

Converts the value of the current TimeSpan object to its equivalent string representation by using the specified format.

TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Tries to format the value of the current instance as UTF-8 into the provided span of bytes.

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Tries to format the value of the current timespan number instance into the provided span of characters.

TryParse(ReadOnlySpan<Char>, IFormatProvider, TimeSpan)

Converts the span representation of a time interval to its TimeSpan equivalent by using the specified culture-specific formatting information, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, TimeSpan)

Converts the span representation of a time interval to its TimeSpan equivalent and returns a value that indicates whether the conversion succeeded.

TryParse(String, IFormatProvider, TimeSpan)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified culture-specific formatting information, and returns a value that indicates whether the conversion succeeded.

TryParse(String, TimeSpan)

Converts the string representation of a time interval to its TimeSpan equivalent and returns a value that indicates whether the conversion succeeded.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpan)

Converts the specified span representation of a time interval to its TimeSpan equivalent by using the specified format and culture-specific format information. The format of the string representation must match the specified format exactly.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpanStyles, TimeSpan)

Converts the specified span representation of a time interval to its TimeSpan equivalent by using the specified format, culture-specific format information, and styles, and returns a value that indicates whether the conversion succeeded. The format of the string representation must match the specified format exactly.

TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpan)

Converts the specified span representation of a time interval to its TimeSpan equivalent by using the specified formats and culture-specific format information. The format of the string representation must match one of the specified formats exactly.

TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpanStyles, TimeSpan)

Converts the specified span representation of a time interval to its TimeSpan equivalent by using the specified formats, culture-specific format information and styles. The format of the string representation must match one of the specified formats exactly.

TryParseExact(String, String, IFormatProvider, TimeSpan)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified format and culture-specific format information. The format of the string representation must match the specified format exactly.

TryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan)

Converts the string representation of a time interval to its TimeSpan equivalent by using the specified format, culture-specific format information and styles. The format of the string representation must match the specified format exactly.

TryParseExact(String, String[], IFormatProvider, TimeSpan)

Converts the specified string representation of a time interval to its TimeSpan equivalent by using the specified formats and culture-specific format information. The format of the string representation must match one of the specified formats exactly.

TryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan)

Converts the specified string representation of a time interval to its TimeSpan equivalent by using the specified formats, culture-specific format information and styles. The format of the string representation must match one of the specified formats exactly.

Operators

Addition(TimeSpan, TimeSpan)

Adds two specified TimeSpan instances.

Division(TimeSpan, Double)

Returns a new TimeSpan object whose value is the result of dividing the specified timeSpan by the specified divisor.

Division(TimeSpan, TimeSpan)

Returns a new Double value that's the result of dividing t1 by t2.

Equality(TimeSpan, TimeSpan)

Indicates whether two TimeSpan instances are equal.

GreaterThan(TimeSpan, TimeSpan)

Indicates whether a specified TimeSpan is greater than another specified TimeSpan.

GreaterThanOrEqual(TimeSpan, TimeSpan)

Indicates whether a specified TimeSpan is greater than or equal to another specified TimeSpan.

Inequality(TimeSpan, TimeSpan)

Indicates whether two TimeSpan instances are not equal.

LessThan(TimeSpan, TimeSpan)

Indicates whether a specified TimeSpan is less than another specified TimeSpan.

LessThanOrEqual(TimeSpan, TimeSpan)

Indicates whether a specified TimeSpan is less than or equal to another specified TimeSpan.

Multiply(Double, TimeSpan)

Returns a new TimeSpan object whose value is the result of multiplying the specified factor and the specified timeSpan instance.

Multiply(TimeSpan, Double)

Returns a new TimeSpan object whose value is the result of multiplying the specified timeSpan instance and the specified factor.

Subtraction(TimeSpan, TimeSpan)

Subtracts a specified TimeSpan from another specified TimeSpan.

UnaryNegation(TimeSpan)

Returns a TimeSpan whose value is the negated value of the specified instance.

UnaryPlus(TimeSpan)

Returns the specified instance of TimeSpan.

Explicit Interface Implementations

IComparable.CompareTo(Object)

Compares this instance to a specified object and returns an integer that indicates whether this instance is shorter than, equal to, or longer than the specified object.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

See also