时间相减

来源:互联网 发布:汉诺塔问题c语言结果 编辑:程序博客网 时间:2024/04/29 19:57
以前将看过一个论坛的源码,有这么一个用来得出当前页共执行的毫秒。
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 = NowConsole.WriteLine((StartTime - EndTime).ToString)


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

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

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


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

00:00:10.4850768

我测试了一下我的那个屏蔽非法字符的正表达式,第一次编译为了1200毫秒,第二次执行毫秒为420
 
原创粉丝点击