2010-05-07 3 views
1

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

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

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

+0

Какой язык, рамки? –

+0

Язык: C# в VS2005 – SyncMaster

ответ

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 

Это то, что вы ищете?

0

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

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); 
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 
Смежные вопросы