TimeSpan 结构
表示一个时间间隔。
**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure TimeSpan
Implements IComparable, IComparable(Of TimeSpan), _
IEquatable(Of TimeSpan)
用法
Dim instance As TimeSpan
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>,
IEquatable<TimeSpan>
[SerializableAttribute]
[ComVisibleAttribute(true)]
public value class TimeSpan : IComparable, IComparable<TimeSpan>,
IEquatable<TimeSpan>
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public final class TimeSpan extends ValueType implements IComparable, IComparable<TimeSpan>,
IEquatable<TimeSpan>
JScript 支持使用结构,但不支持进行新的声明。
备注
TimeSpan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位(如月和年)的天数不同,因此为保持一致性,时间间隔以天为单位来度量。
TimeSpan 对象的值是等于所表示时间间隔的刻度数。一个刻度等于 100 纳秒,TimeSpan 对象的值的范围在 MinValue 和 MaxValue 之间。
TimeSpan 值可以表示为 [-]d.hh:mm:ss.ff,其中减号是可选的,它指示负时间间隔,d 分量表示天,hh 表示小时(24 小时制),mm 表示分钟,ss 表示秒,而 ff 为秒的小数部分。即,时间间隔包括整的正负天数、天数和剩余的不足一天的时长,或者只包含不足一天的时长。例如,初始化为 1.0e+13 刻度的 TimeSpan 对象的文本表示“11.13:46:40”,即 11 天,13 小时,46 分钟和 40 秒。
TimeSpan 类型实现了 System.IComparable 和 System.IComparable 接口。
示例
下面的代码示例创建几个 TimeSpan 对象并显示每个对象的属性。
' 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
// 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
*/
// Example of the TimeSpan class properties.
using namespace System;
// Display the properties of the TimeSpan parameter.
static void ShowTimeSpanProperties( TimeSpan interval )
{
Object^ null = nullptr;
String^ dataFmt = "{0,-12}{1,8} {2,-18}{3,21}";
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 );
}
int main()
{
String^ headerFmt = "\n{0,-45}";
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( TimeSpan(1) );
// Create a TimeSpan value with a large number of ticks.
Console::Write( headerFmt, "TimeSpan( 111222333444555 )" );
ShowTimeSpanProperties( TimeSpan(111222333444555) );
// This TimeSpan has all fields specified.
Console::Write( headerFmt, "TimeSpan( 10, 20, 30, 40, 50 )" );
ShowTimeSpanProperties( TimeSpan(10,20,30,40,50) );
// This TimeSpan has all fields overflowing.
Console::Write( headerFmt, "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, "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
*/
// Example of the TimeSpan class properties.
import System.*;
class TimeSpanPropertiesDemo
{
private static String headerFmt = "\n{0,-45}";
private static 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, new Object[] { "Days",
String.valueOf(interval.get_Days()), "TotalDays",
String.valueOf(interval.get_TotalDays()) });
Console.WriteLine(dataFmt, new Object[] { "Hours",
String.valueOf(interval.get_Hours()), "TotalHours",
String.valueOf(interval.get_TotalHours()) });
Console.WriteLine(dataFmt, new Object[] { "Minutes",
String.valueOf(interval.get_Minutes()), "TotalMinutes",
String.valueOf(interval.get_TotalMinutes()) });
Console.WriteLine(dataFmt, new Object[] { "Seconds",
String.valueOf(interval.get_Seconds()), "TotalSeconds",
(System.Double)interval.get_TotalSeconds() });
Console.WriteLine(dataFmt, new Object[] { "Milliseconds",
String.valueOf(interval.get_Milliseconds()), "TotalMilliseconds",
(System.Double)interval.get_TotalMilliseconds() });
Console.WriteLine(dataFmt, new Object[] { null, null, "Ticks",
String.valueOf(interval.get_Ticks()) });
} //ShowTimeSpanProperties
public static void main(String[] args)
{
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(111222333444555L));
// 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));
} //main
} //TimeSpanPropertiesDemo
/*
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.1574074074074074E-12
Hours 0 TotalHours 2.7777777777777777E-11
Minutes 0 TotalMinutes 1.6666666666666667E-9
Seconds 0 TotalSeconds 1E-07
Milliseconds 0 TotalMilliseconds 0.0001
Ticks 1
TimeSpan( 111222333444555 ) 128.17:30:33.3444555
Days 128 TotalDays 128.7295525978646
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.854630208333333
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.9494161458333
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.847456018518518
Hours 20 TotalHours 500.33894444444445
Minutes 20 TotalMinutes 30020.336666666666
Seconds 20 TotalSeconds 1801220.2
Milliseconds 200 TotalMilliseconds 1801220200
Ticks 18012202000000
*/
线程安全
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0