TimeSpan Structure
Represents a time interval.
For a list of all members of this type, see TimeSpan Members.
System.Object
System.ValueType
System.TimeSpan
[Visual Basic] <Serializable> Public Structure TimeSpan Implements IComparable [C#] [Serializable] public struct TimeSpan : IComparable [C++] [Serializable] public __value struct TimeSpan : public IComparable
[JScript] In JScript, you can use the structures in the .NET Framework, but you cannot define your own.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Remarks
The value of an instance of TimeSpan represents a period of time. That value is the number of ticks contained in the instance and can range from Int64.MinValue to Int64.MaxValue. A tick is the smallest unit of time that can be specified, and is equal to 100 nanoseconds. Both the specification of a number of ticks and the value of a TimeSpan can be positive or negative.
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 to 1.0e+13 ticks represents "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.
Example
[Visual Basic, C#, C++] The following code example creates several TimeSpan objects and displays the properties of each.
[Visual Basic] ' Example of the TimeSpan class properties. Imports System Imports Microsoft.VisualBasic Module TimeSpanPropertiesDemo Const headerFmt As String = vbCrLf & "{0,-45}" Const dataFmt As String = "{0,-12}{1,8} {2,-18}{3,21}" ' Display the properties of the TimeSpan parameter. Sub ShowTimeSpanProperties( interval as TimeSpan ) Console.WriteLine( "{0,21}", interval ) Console.WriteLine( dataFmt, _ "Days", interval.Days, "TotalDays", interval.TotalDays ) Console.WriteLine( dataFmt, "Hours", interval.Hours, _ "TotalHours", interval.TotalHours ) Console.WriteLine( dataFmt, "Minutes", interval.Minutes, _ "TotalMinutes", interval.TotalMinutes ) Console.WriteLine( dataFmt, "Seconds", interval.Seconds, _ "TotalSeconds", interval.TotalSeconds ) Console.WriteLine( dataFmt, _ "Milliseconds", interval.Milliseconds, _ "TotalMilliseconds", interval.TotalMilliseconds ) Console.WriteLine( dataFmt, _ Nothing, Nothing, "Ticks", interval.Ticks ) End Sub Sub Main( ) Console.WriteLine( _ "This example of the TimeSpan class properties " & _ "generates the " & vbCrLf & "following output. It " & _ "creates several TimeSpan objects and " & vbCrLf & _ "displays the values of the TimeSpan properties for " & _ "each." ) ' Create and display a TimeSpan value of 1 tick. Console.Write( headerFmt, "TimeSpan( 1 )" ) ShowTimeSpanProperties( new TimeSpan( 1 ) ) ' Create a TimeSpan value with a large number of ticks. Console.Write( headerFmt, "TimeSpan( 111222333444555 )" ) ShowTimeSpanProperties( new TimeSpan( 111222333444555 ) ) ' This TimeSpan has all fields specified. Console.Write( headerFmt, "TimeSpan( 10, 20, 30, 40, 50 )" ) ShowTimeSpanProperties( new TimeSpan( 10, 20, 30, 40, 50 ) ) ' This TimeSpan has all fields overflowing. Console.Write( headerFmt, _ "TimeSpan( 1111, 2222, 3333, 4444, 5555 )" ) ShowTimeSpanProperties( _ new TimeSpan( 1111, 2222, 3333, 4444, 5555 ) ) ' This TimeSpan is based on a number of days. Console.Write( headerFmt, "FromDays( 20.84745602 )" ) ShowTimeSpanProperties( TimeSpan.FromDays( 20.84745602 ) ) End Sub End Module ' This example of the TimeSpan class properties generates the ' following output. It creates several TimeSpan objects and ' displays the values of the TimeSpan properties for each. ' ' TimeSpan( 1 ) 00:00:00.0000001 ' Days 0 TotalDays 1.15740740740741E-12 ' Hours 0 TotalHours 2.77777777777778E-11 ' Minutes 0 TotalMinutes 1.66666666666667E-09 ' Seconds 0 TotalSeconds 1E-07 ' Milliseconds 0 TotalMilliseconds 0.0001 ' Ticks 1 ' ' TimeSpan( 111222333444555 ) 128.17:30:33.3444555 ' Days 128 TotalDays 128.729552597865 ' Hours 17 TotalHours 3089.50926234875 ' Minutes 30 TotalMinutes 185370.555740925 ' Seconds 33 TotalSeconds 11122233.3444555 ' Milliseconds 344 TotalMilliseconds 11122233344.4555 ' Ticks 111222333444555 ' ' TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000 ' Days 10 TotalDays 10.8546302083333 ' Hours 20 TotalHours 260.511125 ' Minutes 30 TotalMinutes 15630.6675 ' Seconds 40 TotalSeconds 937840.05 ' Milliseconds 50 TotalMilliseconds 937840050 ' Ticks 9378400500000 ' ' TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000 ' Days 1205 TotalDays 1205.94941614583 ' Hours 22 TotalHours 28942.7859875 ' Minutes 47 TotalMinutes 1736567.15925 ' Seconds 9 TotalSeconds 104194029.555 ' Milliseconds 555 TotalMilliseconds 104194029555 ' Ticks 1041940295550000 ' ' FromDays( 20.84745602 ) 20.20:20:20.2000000 ' Days 20 TotalDays 20.8474560185185 ' Hours 20 TotalHours 500.338944444444 ' Minutes 20 TotalMinutes 30020.3366666667 ' Seconds 20 TotalSeconds 1801220.2 ' Milliseconds 200 TotalMilliseconds 1801220200 ' Ticks 18012202000000 [C#] // Example of the TimeSpan class properties. using System; class TimeSpanPropertiesDemo { const string headerFmt = "\n{0,-45}"; const string dataFmt = "{0,-12}{1,8} {2,-18}{3,21}" ; // Display the properties of the TimeSpan parameter. static void ShowTimeSpanProperties( TimeSpan interval ) { Console.WriteLine( "{0,21}", interval ); Console.WriteLine( dataFmt, "Days", interval.Days, "TotalDays", interval.TotalDays ); Console.WriteLine( dataFmt, "Hours", interval.Hours, "TotalHours", interval.TotalHours ); Console.WriteLine( dataFmt, "Minutes", interval.Minutes, "TotalMinutes", interval.TotalMinutes ); Console.WriteLine( dataFmt, "Seconds", interval.Seconds, "TotalSeconds", interval.TotalSeconds ); Console.WriteLine( dataFmt, "Milliseconds", interval.Milliseconds, "TotalMilliseconds", interval.TotalMilliseconds ); Console.WriteLine( dataFmt, null, null, "Ticks", interval.Ticks ); } static void Main( ) { Console.WriteLine( "This example of the TimeSpan class properties " + "generates the \nfollowing output. It " + "creates several TimeSpan objects and \ndisplays " + "the values of the TimeSpan properties for each." ); // Create and display a TimeSpan value of 1 tick. Console.Write( headerFmt, "TimeSpan( 1 )" ); ShowTimeSpanProperties( new TimeSpan( 1 ) ); // Create a TimeSpan value with a large number of ticks. Console.Write( headerFmt, "TimeSpan( 111222333444555 )" ); ShowTimeSpanProperties( new TimeSpan( 111222333444555 ) ); // This TimeSpan has all fields specified. Console.Write( headerFmt, "TimeSpan( 10, 20, 30, 40, 50 )" ); ShowTimeSpanProperties( new TimeSpan( 10, 20, 30, 40, 50 ) ); // This TimeSpan has all fields overflowing. Console.Write( headerFmt, "TimeSpan( 1111, 2222, 3333, 4444, 5555 )" ); ShowTimeSpanProperties( new TimeSpan( 1111, 2222, 3333, 4444, 5555 ) ); // This TimeSpan is based on a number of days. Console.Write( headerFmt, "FromDays( 20.84745602 )" ); ShowTimeSpanProperties( TimeSpan.FromDays( 20.84745602 ) ); } } /* This example of the TimeSpan class properties generates the following output. It creates several TimeSpan objects and displays the values of the TimeSpan properties for each. TimeSpan( 1 ) 00:00:00.0000001 Days 0 TotalDays 1.15740740740741E-12 Hours 0 TotalHours 2.77777777777778E-11 Minutes 0 TotalMinutes 1.66666666666667E-09 Seconds 0 TotalSeconds 1E-07 Milliseconds 0 TotalMilliseconds 0.0001 Ticks 1 TimeSpan( 111222333444555 ) 128.17:30:33.3444555 Days 128 TotalDays 128.729552597865 Hours 17 TotalHours 3089.50926234875 Minutes 30 TotalMinutes 185370.555740925 Seconds 33 TotalSeconds 11122233.3444555 Milliseconds 344 TotalMilliseconds 11122233344.4555 Ticks 111222333444555 TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000 Days 10 TotalDays 10.8546302083333 Hours 20 TotalHours 260.511125 Minutes 30 TotalMinutes 15630.6675 Seconds 40 TotalSeconds 937840.05 Milliseconds 50 TotalMilliseconds 937840050 Ticks 9378400500000 TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000 Days 1205 TotalDays 1205.94941614583 Hours 22 TotalHours 28942.7859875 Minutes 47 TotalMinutes 1736567.15925 Seconds 9 TotalSeconds 104194029.555 Milliseconds 555 TotalMilliseconds 104194029555 Ticks 1041940295550000 FromDays( 20.84745602 ) 20.20:20:20.2000000 Days 20 TotalDays 20.8474560185185 Hours 20 TotalHours 500.338944444444 Minutes 20 TotalMinutes 30020.3366666667 Seconds 20 TotalSeconds 1801220.2 Milliseconds 200 TotalMilliseconds 1801220200 Ticks 18012202000000 */ [C++] // Example of the TimeSpan class properties. #using <mscorlib.dll> using namespace System; // Display the properties of the TimeSpan parameter. static void ShowTimeSpanProperties( TimeSpan interval ) { Object* null = 0; String* dataFmt = S"{0,-12}{1,8} {2,-18}{3,21}" ; Console::WriteLine( S"{0,21}", __box( interval ) ); Console::WriteLine( dataFmt, S"Days", __box( interval.Days ), S"TotalDays", __box( interval.TotalDays ) ); Console::WriteLine( dataFmt, S"Hours", __box( interval.Hours ), S"TotalHours", __box( interval.TotalHours ) ); Console::WriteLine( dataFmt, S"Minutes", __box( interval.Minutes ), S"TotalMinutes", __box( interval.TotalMinutes ) ); Console::WriteLine( dataFmt, S"Seconds", __box( interval.Seconds ), S"TotalSeconds", __box( interval.TotalSeconds ) ); Console::WriteLine( dataFmt, S"Milliseconds", __box( interval.Milliseconds ), S"TotalMilliseconds", __box( interval.TotalMilliseconds ) ); Console::WriteLine( dataFmt, null, null, S"Ticks", __box( interval.Ticks ) ); } void main( ) { String* headerFmt = S"\n{0,-45}"; Console::WriteLine( S"This example of the TimeSpan class properties " S"generates the \nfollowing output. It " S"creates several TimeSpan objects and \ndisplays " S"the values of the TimeSpan properties for each." ); // Create and display a TimeSpan value of 1 tick. Console::Write( headerFmt, S"TimeSpan( 1 )" ); ShowTimeSpanProperties( TimeSpan( 1 ) ); // Create a TimeSpan value with a large number of ticks. Console::Write( headerFmt, S"TimeSpan( 111222333444555 )" ); ShowTimeSpanProperties( TimeSpan( 111222333444555 ) ); // This TimeSpan has all fields specified. Console::Write( headerFmt, S"TimeSpan( 10, 20, 30, 40, 50 )" ); ShowTimeSpanProperties( TimeSpan( 10, 20, 30, 40, 50 ) ); // This TimeSpan has all fields overflowing. Console::Write( headerFmt, S"TimeSpan( 1111, 2222, 3333, 4444, 5555 )" ); ShowTimeSpanProperties( TimeSpan( 1111, 2222, 3333, 4444, 5555 ) ); // This TimeSpan is based on a number of days. Console::Write( headerFmt, S"FromDays( 20.84745602 )" ); ShowTimeSpanProperties( TimeSpan::FromDays( 20.84745602 ) ); } /* This example of the TimeSpan class properties generates the following output. It creates several TimeSpan objects and displays the values of the TimeSpan properties for each. TimeSpan( 1 ) 00:00:00.0000001 Days 0 TotalDays 1.15740740740741E-12 Hours 0 TotalHours 2.77777777777778E-11 Minutes 0 TotalMinutes 1.66666666666667E-09 Seconds 0 TotalSeconds 1E-07 Milliseconds 0 TotalMilliseconds 0.0001 Ticks 1 TimeSpan( 111222333444555 ) 128.17:30:33.3444555 Days 128 TotalDays 128.729552597865 Hours 17 TotalHours 3089.50926234875 Minutes 30 TotalMinutes 185370.555740925 Seconds 33 TotalSeconds 11122233.3444555 Milliseconds 344 TotalMilliseconds 11122233344.4555 Ticks 111222333444555 TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000 Days 10 TotalDays 10.8546302083333 Hours 20 TotalHours 260.511125 Minutes 30 TotalMinutes 15630.6675 Seconds 40 TotalSeconds 937840.05 Milliseconds 50 TotalMilliseconds 937840050 Ticks 9378400500000 TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000 Days 1205 TotalDays 1205.94941614583 Hours 22 TotalHours 28942.7859875 Minutes 47 TotalMinutes 1736567.15925 Seconds 9 TotalSeconds 104194029.555 Milliseconds 555 TotalMilliseconds 104194029555 Ticks 1041940295550000 FromDays( 20.84745602 ) 20.20:20:20.2000000 Days 20 TotalDays 20.8474560185185 Hours 20 TotalHours 500.338944444444 Minutes 20 TotalMinutes 30020.3366666667 Seconds 20 TotalSeconds 1801220.2 Milliseconds 200 TotalMilliseconds 1801220200 Ticks 18012202000000 */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: Mscorlib (in Mscorlib.dll)