C#计算代码运行时间,以及总秒数转换为时间格式的问题
2015-09-21 16:17
891 查看
最近项目中遇到了此类问题,然后网上也去了解学习了一下
代码运行时间计算问题
直接代码:
第一种方法利用System.DateTime.Now
第二种用Stopwatch类(System.Diagnostics)
第三种用API实现:
二。总秒数转换为时间格式
代码运行时间计算问题
直接代码:
第一种方法利用System.DateTime.Now
static void SubTest() { DateTime beforDT = System.DateTime.Now; //此处为你需要计算运行时间的代码 DateTime afterDT = System.DateTime.Now; TimeSpan ts = afterDT.Subtract(beforDT); Console.WriteLine("DateTime总共花费{0}s.", ts.TotalSeconds); }
第二种用Stopwatch类(System.Diagnostics)
static void SubTest() { Stopwatch sw = new Stopwatch(); sw.Start(); //此处为你需要计算运行时间的代码 sw.Stop(); TimeSpan ts2 = sw.Elapsed; Console.WriteLine("Stopwatch总共花费{0}s.", ts2.TotalSeconds); }
第三种用API实现:
[System.Runtime.InteropServices.DllImport("Kernel32.dll")] static extern bool QueryPerformanceCounter(ref long count); [System.Runtime.InteropServices.DllImport("Kernel32.dll")] static extern bool QueryPerformanceFrequency(ref long count); static void SubTest() { long count = 0; long count1 = 0; long freq = 0; double result = 0; QueryPerformanceFrequency(ref freq); QueryPerformanceCounter(ref count); //此处为你需要计算运行时间的代码 QueryPerformanceCounter(ref count1); count = count1 - count; result = (double)(count) / (double)freq; Console.WriteLine("QueryPerformanceCounter耗时: {0} 秒", result); }
二。总秒数转换为时间格式
int s = 6000;//总秒数 TimeSpan ts = new TimeSpan(0, 0, s); Label1.Text = (int)ts.TotalHours + "小时" + ts.Minutes + "分钟" + ts.Seconds + "秒";这里的ts.Seconds和ts.TotalSeconds是有区别的,切记,