导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

TimeSpan 结构

2013/12/13

表示时间间隔。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public struct TimeSpan : IComparable, IComparable<TimeSpan>, 
	IEquatable<TimeSpan>, IFormattable

TimeSpan 类型公开以下成员。

  名称说明
公共方法TimeSpan(Int64)将新的 TimeSpan 初始化为指定的刻度数。
公共方法TimeSpan(Int32, Int32, Int32)将新的 TimeSpan 初始化为指定的小时数、分钟数和秒数。
公共方法TimeSpan(Int32, Int32, Int32, Int32)将新的 TimeSpan 初始化为指定的天数、小时数、分钟数和秒数。
公共方法TimeSpan(Int32, Int32, Int32, Int32, Int32)将新的 TimeSpan 初始化为指定的天数、小时数、分钟数、秒数和毫秒数。
返回顶部

  名称说明
公共属性Days获取当前 TimeSpan 结构所表示的时间间隔的天数部分。
公共属性Hours获取当前 TimeSpan 结构所表示的时间间隔的小时部分。
公共属性Milliseconds获取当前 TimeSpan 结构所表示的时间间隔的毫秒部分。
公共属性Minutes获取当前 TimeSpan 结构所表示的时间间隔的分钟部分。
公共属性Seconds获取当前 TimeSpan 结构所表示的时间间隔的秒部分。
公共属性Ticks获取表示当前 TimeSpan 结构的值的计时周期数。
公共属性TotalDays获取以整天数和天的小数部分表示的当前 TimeSpan 结构的值。
公共属性TotalHours获取以整小时数和小时的小数部分表示的当前 TimeSpan 结构的值。
公共属性TotalMilliseconds获取以整毫秒数和毫秒的小数部分表示的当前 TimeSpan 结构的值。
公共属性TotalMinutes获取以整分钟数和分钟的小数部分表示的当前 TimeSpan 结构的值。
公共属性TotalSeconds获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值。
返回顶部

  名称说明
公共方法Add返回一个新的 TimeSpan 对象,其值为指定的 TimeSpan 对象与此实例之和。
公共方法静态成员Compare比较两个 TimeSpan 值,并返回一个整数,该整数指示第一个时间间隔是大于、等于还是小于第二个时间间隔。
公共方法CompareTo(Object)将此实例与指定的对象进行比较,并返回一个整数,该整数指示此实例表示的时间间隔是大于、等于还是小于指定对象表示的时间间隔。
公共方法CompareTo(TimeSpan)将此实例与指定的 TimeSpan 对象进行比较,并返回一个整数,该整数指示此实例表示的时间间隔是大于、等于还是小于该指定的 TimeSpan 对象表示的时间间隔。
公共方法Duration返回新的 TimeSpan 对象,其值是当前 TimeSpan 对象的绝对值。
公共方法Equals(Object)返回一个值,该值指示此实例是否等于指定的对象。 (重写 ValueType.Equals(Object)。)
公共方法Equals(TimeSpan)返回一个值,该值指示此实例是否与指定的 TimeSpan 对象相等。
公共方法静态成员Equals(TimeSpan, TimeSpan)返回一个值,该值指示 TimeSpan 的两个指定实例是否相等。
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法静态成员FromDays返回表示指定天数的 TimeSpan,其中对天数的指定精确到最接近的毫秒。
公共方法静态成员FromHours返回表示指定小时数的 TimeSpan,其中对小时数的指定精确到最接近的毫秒。
公共方法静态成员FromMilliseconds返回表示指定毫秒数的 TimeSpan
公共方法静态成员FromMinutes返回表示指定分钟数的 TimeSpan,其中对分钟数的指定精确到最接近的毫秒。
公共方法静态成员FromSeconds返回表示指定秒数的 TimeSpan,其中对秒数的指定精确到最接近的毫秒。
公共方法静态成员FromTicks返回表示指定时间的 TimeSpan,其中对时间的指定以刻度为单位。
公共方法GetHashCode返回此实例的哈希代码。 (重写 ValueType.GetHashCode()。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法Negate返回其值为此实例的相反值的新 TimeSpan
公共方法静态成员Parse(String)将时间间隔的字符串表示形式转换为等效的 TimeSpan
公共方法静态成员Parse(String, IFormatProvider)使用指定的区域性特定格式信息,将时间间隔的字符串表示形式转换为其等效的 TimeSpan
公共方法静态成员ParseExact(String, String, IFormatProvider)使用指定的格式和区域性特定格式信息,将时间间隔的字符串表示形式转换为其等效的 TimeSpan。字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员ParseExact(String, String[], IFormatProvider)使用指定的格式字符串数组和区域性特定格式信息,将时间间隔的字符串表示形式转换为其等效的 TimeSpan。字符串表示形式的格式必须与一种指定的格式完全匹配。
公共方法静态成员ParseExact(String, String, IFormatProvider, TimeSpanStyles)使用指定的格式、区域性特定格式信息和样式,将时间间隔的字符串表示形式转换为其等效的 TimeSpan。字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员ParseExact(String, String[], IFormatProvider, TimeSpanStyles)使用指定的格式、区域性特定格式信息和样式,将时间间隔的字符串表示形式转换为其等效的 TimeSpan。字符串表示形式的格式必须与一种指定的格式完全匹配。
公共方法Subtract返回一个新的 TimeSpan 对象,其值为指定的 TimeSpan 对象与此实例之差。
公共方法ToString()将当前 TimeSpan 对象的值转换为其等效的字符串表示形式。 (重写 ValueType.ToString()。)
公共方法ToString(String)使用指定的格式将当前 TimeSpan 对象的值转换为其等效的字符串表示形式。
公共方法ToString(String, IFormatProvider)使用指定的格式和区域性特定的格式设置信息,将当前 TimeSpan 对象的值转换为其等效字符串表示形式。
公共方法静态成员TryParse(String, TimeSpan)将时间间隔的字符串表示形式转换为其等效的 TimeSpan,并返回一个指示转换是否成功的值。
公共方法静态成员TryParse(String, IFormatProvider, TimeSpan)使用指定的区域性特定格式设置信息,将时间间隔的字符串表示形式转换为其等效的 TimeSpan,并返回一个指示转换是否成功的值。
公共方法静态成员TryParseExact(String, String, IFormatProvider, TimeSpan)使用指定的格式和区域性特定格式信息,将时间间隔的字符串表示形式转换为其等效的 TimeSpan,并返回一个指示转换是否成功的值。字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员TryParseExact(String, String[], IFormatProvider, TimeSpan)使用指定的格式和区域性特定格式信息,将时间间隔的指定字符串表示形式转换为其等效的 TimeSpan,并返回一个指示转换是否成功的值。字符串表示形式的格式必须与一种指定的格式完全匹配。
公共方法静态成员TryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan)使用指定的格式、区域性特定格式信息和样式,将时间间隔的字符串表示形式转换为其等效的 TimeSpan,并返回一个指示转换是否成功的值。字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员TryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan)使用指定的格式、区域性特定格式信息和样式,将时间间隔的指定字符串表示形式转换为其等效的 TimeSpan,并返回一个指示转换是否成功的值。字符串表示形式的格式必须与一种指定的格式完全匹配。
返回顶部

  名称说明
公共运算符静态成员Addition添加两个指定的 TimeSpan 实例。
公共运算符静态成员Equality指示两个 TimeSpan 实例是否相等。
公共运算符静态成员GreaterThan指示指定的 TimeSpan 是否大于另一个指定的 TimeSpan
公共运算符静态成员GreaterThanOrEqual指示指定的 TimeSpan 是否大于或等于另一个指定的 TimeSpan
公共运算符静态成员Inequality指示两个 TimeSpan 实例是否不相等。
公共运算符静态成员LessThan指示指定的 TimeSpan 是否小于另一个指定的 TimeSpan
公共运算符静态成员LessThanOrEqual指示指定的 TimeSpan 是否小于或等于另一个指定的 TimeSpan
公共运算符静态成员Subtraction从另一个指定的 TimeSpan 中减去指定的 TimeSpan
公共运算符静态成员UnaryNegation返回其值为指定实例的相反值的 TimeSpan
公共运算符静态成员UnaryPlus返回指定的 TimeSpan 实例。
返回顶部

  名称说明
公共字段静态成员MaxValue表示最大的 TimeSpan 值。此字段为只读。
公共字段静态成员MinValue表示最小的 TimeSpan 值。此字段为只读。
公共字段静态成员TicksPerDay表示一天中的计时周期数。此字段为常量。
公共字段静态成员TicksPerHour表示 1 小时中的计时周期数。此字段为常量。
公共字段静态成员TicksPerMillisecond表示 1 毫秒中的计时周期数。此字段为常量。
公共字段静态成员TicksPerMinute表示 1 分钟中的计时周期数。此字段为常量。
公共字段静态成员TicksPerSecond表示 1 秒中的计时周期数。
公共字段静态成员Zero表示零 TimeSpan 值。此字段为只读。
返回顶部

TimeSpan 对象表示时间间隔(持续时间货运行时间),按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。TimeSpan 结构还可用于表示一天中的时间,但仅为当时间与特殊日期不相关时。否则,应使用 DateTimeDateTimeOffset 结构来代替。

用于度量持续时间的最大时间单位是天。更大的时间单位(如月和年)的天数不同,因此为保持一致性,时间间隔以天为单位来度量。

TimeSpan 对象的值是等于所表示时间间隔的刻度数。一个刻度等于 100 纳秒,TimeSpan 对象的值的范围在 TimeSpan.MinValueTimeSpan.MaxValue 之间。

实例化 TimeSpan 值

可通过多种方法实例化 TimeSpan 值:

  • 通过调用它的隐式默认构造函数。这将创建一个对象,其值为 TimeSpan.Zero,如下例所示。

    
    TimeSpan interval = new TimeSpan();
    outputBlock.Text += interval.Equals(TimeSpan.Zero) + "\n";    // Displays "True".
    
    
    
  • 通过调用其显式构造函数之一。下面的示例将 TimeSpan 值初始化为指定数量的小时、分钟和秒数。

    
    TimeSpan interval = new TimeSpan(2, 14, 18);
    outputBlock.Text += interval.ToString() + "\n";              // Displays "02:14:18".
    
    
    
  • 通过调用方法或执行返回 TimeSpan 值的操作。例如,可以实例化一个 TimeSpan 的值,该值代表两个日期和时间值之间的间隔,如下面的示例所示。

    
    DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0);
    DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0);
    TimeSpan travelTime = arrival - departure;
    outputBlock.Text += String.Format("{0} - {1} = {2}", arrival, departure, travelTime) + "\n";
    // The example displays the following output:
    //       6/13/2010 10:47:00 PM - 6/12/2010 6:32:00 PM = 1.04:15:00
    
    
    

    您也可以用此方式将 TimeSpan 对象实例化为零时间值,如以下示例所示。

    TimeSpan 值由算术运算符和 DateTimeDateTimeOffsetTimeSpan 结构的方法返回。

  • 通过分析 TimeSpan 值的字符串表示形式。可以使用 ParseTryParse 方法,以将包含时间间隔的字符串转换为 TimeSpan 值。下面的示例使用 Parse 方法将字符串数组转换为 TimeSpan 值。

    
    string[] values = { "12", "31.", "5.8:32:16", "12:12:15.95", ".12" };
    foreach (string value in values)
    {
       try
       {
          TimeSpan ts = TimeSpan.Parse(value);
          outputBlock.Text += String.Format("'{0}' --> {1}", value, ts) + "\n";
       }
       catch (FormatException)
       {
          outputBlock.Text += String.Format("Unable to parse '{0}'", value) + "\n";
       }
       catch (OverflowException)
       {
          outputBlock.Text += String.Format("'{0}' is outside the range of a TimeSpan.", value) + "\n";
       }
    }
    // The example displays the following output:
    //       '12' --> 12.00:00:00
    //       Unable to parse '31.'
    //       '5.8:32:16' --> 5.08:32:16
    //       '12:12:15.95' --> 12:12:15.9500000
    //       Unable to parse '.12'  
    
    
    

格式化 TimeSpan 值

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 对象。然后显示 TimeSpan 对象的属性。有关如何编译和运行此示例代码的信息,请参见生成具有静态 Windows Phone TextBlock 控件的示例


outputBlock.FontFamily = new System.Windows.Media.FontFamily("Courier New");

// 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;
outputBlock.Text += String.Format("{0} - {1} = {2}", date2, date1, interval.ToString()) + "\n";
// Display individual properties of the resulting TimeSpan object.
outputBlock.Text += String.Format("   {0,-35} {1,20}", "Value of Days Component:", interval.Days) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20}", "Total Number of Days:", interval.TotalDays) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20}", "Value of Hours Component:", interval.Hours) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20}", "Total Number of Hours:", interval.TotalHours) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20}", "Value of Minutes Component:", interval.Minutes) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20}", "Total Number of Minutes:", interval.TotalMinutes) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20:N0}", "Value of Seconds Component:", interval.Seconds) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20:N0}", "Total Number of Seconds:", interval.TotalSeconds) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20:N0}", "Value of Milliseconds Component:", interval.Milliseconds) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20:N0}", "Total Number of Milliseconds:", interval.TotalMilliseconds) + "\n";
outputBlock.Text += String.Format("   {0,-35} {1,20:N0}", "Ticks:", interval.Ticks) + "\n";
// the 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


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

显示:
© 2014 Microsoft