Проблема нахождения разницы между двумя временными интервалами - PullRequest
1 голос
/ 07 мая 2010

Как мне найти разницу между двумя временными интервалами.Как 13: 45: 26.836 - 14: 24: 18.473 в формате «Час: Мин: Сек: Миллисек».Теперь мне нужно найти разницу во времени между этими двумя временами.

Как я могу сделать это в C #.?

Заранее спасибо.

Ответы [ 4 ]

4 голосов
/ 07 мая 2010

По сути, вам нужно поместить эти значения времени в 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 голос
/ 07 мая 2010

я публикую пример;

Вы можете проверить это и адаптировать свою программу,

/* 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);
0 голосов
/ 07 мая 2010
//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
0 голосов
/ 07 мая 2010

Найти количество секунд; вычтите оба числа, и тогда вы сможете выяснить разницу во времени. Я уверен, что в зависимости от используемого вами языка программирования это должна быть библиотека, которая может с этим справиться.

...