Export (0) Print
Expand All

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 Language Filter 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)

See Also

TimeSpan Members | System Namespace | DateTime | Calendar

Show:
© 2014 Microsoft