如何找到两个时间间隔之间的差异。 如13:45:26.836 - 14:24:18.473,其格式为“Hour:Min:Sec:Millisecs”。现在我需要找到这两次之间的时差。
我怎样才能在C#中做到这一点。?
提前致谢。
答案 0 :(得分:4)
基本上,您需要做的是将这些时间值放入DateTime
结构中。获得两个DateTime
变量后,只需将它们相互减去 - 结果就是TimeSpan
类型的变量:
DateTime dt1 = new DateTime(2010, 5, 7, 13, 45, 26, 836);
DateTime dt2 = new DateTime(2010, 5, 7, 14, 24, 18, 473);
TimeSpan result = dt2 - dt1;
string result2 = result.ToString();
TimeSpan有大量的属性可以获得集合 - 各种单位的差异,例如:毫秒,秒,分钟等。您也可以在其上执行.ToString()
以获取结果的字符串表示。在result2
中,您将获得以下内容:
00:38:51.6370000
这就是你要找的东西吗?
答案 1 :(得分:1)
我发布了一个例子;
你可以检查它并调整你的程序,
/* Read the initial time. */
DateTime startTime = DateTime.Now;
Console.WriteLine(startTime);
/* Do something that takes up some time. For example sleep for 1.7 seconds. */
Thread.Sleep(1700);
/* Read the end time. */
DateTime stopTime = DateTime.Now;
Console.WriteLine(stopTime);
/* Compute the duration between the initial and the end time.
* Print out the number of elapsed hours, minutes, seconds and milliseconds. */
TimeSpan duration = stopTime - startTime;
Console.WriteLine("hours:" + duration.Hours);
Console.WriteLine("minutes:" + duration.Minutes);
Console.WriteLine("seconds:" + duration.Seconds);
Console.WriteLine("milliseconds:" + duration.Milliseconds);
答案 2 :(得分:0)
查找秒数;减去这两个数字,然后你就可以计算出时差。根据您使用的编程语言,我很肯定他们必须是一个可以处理它的库。
答案 3 :(得分:0)
//Start off with a string
string time1s = "13:45:26.836";
string time2s = "14:24:18.473";
TimeSpan interval = DateTime.Parse(time2s) - DateTime.Parse(time1s);
这将产生以下结果:
Days 0 int Hours 0 int Milliseconds 637 int Minutes 38 int Seconds 51 int Ticks 23316370000 long TotalDays 0.02698653935185185 double TotalHours 0.64767694444444446 double TotalMilliseconds 2331637.0 double TotalMinutes 38.860616666666665 double TotalSeconds 2331.6369999999997 double