问题发现两个时间间隔之间的差异

时间:2010-05-07 04:29:06

标签: c# visual-studio-2005 time

如何找到两个时间间隔之间的差异。 如13:45:26.836 - 14:24:18.473,其格式为“Hour:Min:Sec:Millisecs”。现在我需要找到这两次之间的时差。

我怎样才能在C#中做到这一点。?

提前致谢。

4 个答案:

答案 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