在开发项目的时候,一个最常涉及的特性就是对日期和时间值的处理。你可以在许多地方应用日期与时间,包括生成报告,数据记录,计算等等。在包含多个日期时间值的情形下,通常需要计算他们的距离。.NET Framework提供了一系列对于此问题的解决方案。在本篇文章中,我会集中关注TimeSpan值类型,并举一些能在您的代码中使用的例子。
根据微软文档的描述,DateTime值类型代表了一个从公元
DateTime dt = new DateTime(2004, 4, 1);
The J# syntax is the same. The VB.NET equivalent appears next:
J# 语法与之相同。VB.NET的等价描述如下:
Dim dt As DateTime = DateTime(2004, 4, 1)
这个简单的例子演示了DateTime的几个构造器之一。DateTime类共有7个构造器(构造函数)。其中最基本的一个构造器接受一个长整型数值代表了tick数。微软把一个tick定义为时间可分割的最小单位,相当于100纳秒(0.1微秒)。而TimeSpan值的tick数以及TimeSpan值均可正可负。
Dealing with a time span
关于时间片段(time span)的讨论
开发者可以利用TimeSpan类来计算两个DateTime值之间的差别,返回一个tick计数。这个值代表了一个时间片段,可以被.NET格式化语法格式化并显示。在格式化显示TimeSpan值时,一个有用的提示就是:最大的显示单位是天。因为,不同的年和月中有不同的天数。下面的C#代码示例返回了两个DateTime值之间的差别:
try {
DateTime dt1 = DateTime.Now;
DateTime dt2 = new DateTime(2003,4,15);
TimeSpan ts = dt1.Subtract(dt2);
Console.WriteLine(ts);
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
上面的例子输出结果如下:
349.14:32:44.1937760
这里是上面输出内容的组成:
每个值都可以通过具体的属性来访问。
Working with TimeSpan results