现在的位置: 首页 > 综合 > 正文

时间相减

2012年12月28日 ⁄ 综合 ⁄ 共 1037字 ⁄ 字号 评论关闭
以前将看过一个论坛的源码,有这么一个用来得出当前页共执行的毫秒。
protected DateTime dtStartTime = DateTime.Now;
protected DateTime intRunTime= DateTime.Now;
intRunTime = (int)(DateTime.Now - dtStartTime).TotalMilliseconds;
不知道在C#里是否能这样就行?我查看过其它相关联的代码,发现只是这样的,但在VB里也执行这样的语句确是错误的。
dim s as system.datetime=now
dim endtime as system.datetime=(now-s) '提示运算符'-' 不能为date定义的
然后查了一下相关资料,
在.NET框架组件中显示时间

  开发过程过程中我们通常对特定代码片运行所花的时间很感兴趣。当然有一些标准程序和代码工具可以查看到它,但是有经验的Visual Basic 6.0开发者有更快的办法。仅仅捕捉开始时间(使用Now关键字)和终止时间(再次使用Now关键字),两种相减,就能知道结果了。

  如果使用Visual Basic .NET编写,首先尝试的代码可能是这样的:


Dim StartTime As DateTime = Now
            ' {code to check for timing goes here}
            Dim EndTime As DateTime = Now
            Console.WriteLine((StartTime - EndTime).ToString)

  但是这段代码的最后一行有语法错误。错误消息是"日期类型没有定义'-'操作符"。这意味着我们不能执行减法。日期数据类型不支持减法操作,那么我们怎么得到两次时间的差别呢?

  答案就是使用TimeSpan类。它是用于保持时间段的。上面的代码看起来与.NET框架组件中的相似:


Dim StartTime As DateTime = Now
            ' {code to check for timing goes here}
            Dim EndTime As DateTime = Now
            Dim RunLength As System.TimeSpan
            RunLength = EndTime.Subtract(StartTime)
            Console.WriteLine(RunLength.ToString)

  计算使用的是类Date的Subtract方法。最后一行将输出时间的跨度,格式化成小时、分钟和秒(包括秒的小数位)。典型的输出是这样的:


00:00:10.4850768

抱歉!评论已关闭.