方法一,利用两个DATETIME变量直接相减得到一个TIMESPAN,然后转换TIMESPAN得到所需的值。
方法二,根据两个DATETIME变量实例化TIMESPAN,然后调用TIMESPAN的SUBTRACT方法得到TIMESPAN。


1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace CalculateTimeSpan
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 while (true)
12 {
13 Console.Write("请按任意键来选择开始时间");
14 Console.ReadKey(false);
15 Console.WriteLine();
16
17 DateTime dtbegin = DateTime.Now;
18 Console.WriteLine("开始时间为:" + dtbegin.ToLongTimeString()+"毫秒:"+dtbegin.Millisecond);
19 Console.Write("请按任意键来选择结束时间");
20 Console.ReadKey(false);
21 DateTime dtend = DateTime.Now;
22 Console.WriteLine();
23 Console.WriteLine("结束时间为:" + dtend.ToLongTimeString()+"毫秒"+dtend.Millisecond);
24
25 Console.WriteLine("相减的结果:" + DateDiff(dtbegin, dtend).TotalMilliseconds);
26 Console.WriteLine("用timespan的subtract的结果:" + DateDiff2(dtbegin, dtend).TotalMilliseconds);
27 Console.Read();
28 }
29 }
30 private static TimeSpan DateDiff(DateTime dt_begin, DateTime dt_end)
31 {
32 TimeSpan tsTotal = dt_end - dt_begin;
33 return tsTotal;
34 }
35 private static TimeSpan DateDiff2(DateTime dt_begin, DateTime dt_end)
36 {
37 TimeSpan ts_begin = new TimeSpan(dt_begin.Ticks);
38 TimeSpan ts_end = new TimeSpan(dt_end.Ticks);
39 TimeSpan tsTotal = ts_end.Subtract(ts_begin).Duration();
40 return tsTotal;
41 }
42 }
43 }
44