利用.net计算时间片段

ZDNet软件频道 时间:2004-04-12 作者:Builder.com |  我要评论()
本文关键词:donnettips
在开发项目的时候,一个最常涉及的特性就是对日期和时间值的处理。你可以在许多地方应用日期与时间,包括生成报告,数据记录,计算等等。
本文译自Builder.com,未经许可请勿转载

在开发项目的时候,一个最常涉及的特性就是对日期和时间值的处理。你可以在许多地方应用日期与时间,包括生成报告,数据记录,计算等等。在包含多个日期时间值的情形下,通常需要计算他们的距离。.NET Framework提供了一系列对于此问题的解决方案。在本篇文章中,我会集中关注TimeSpan值类型,并举一些能在您的代码中使用的例子。

什么是DateTime?

根据微软文档的描述,DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻。下述C#代码建立了一个DateTime对象,代表了2004年4月1日

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

 

这里是上面输出内容的组成:

  • 349 days
  • 14 hours
  • 32 minutes
  • 44 seconds
  • 1937760 milliseconds

每个值都可以通过具体的属性来访问。

Working with TimeSpan results


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134