Как получить разницу во времени между двумя DateTime
объектами с помощью C #?
159
Следующий пример демонстрирует, как это сделать:
DateTime a = new DateTime(2010, 05, 12, 13, 15, 00);
DateTime b = new DateTime(2010, 05, 12, 13, 45, 00);
Console.WriteLine(b.Subtract(a).TotalMinutes);
При выполнении выдает «30», поскольку разница между датой и временем составляет 30 минут.
Результатом DateTime.Subtract(DateTime x)
является объект TimeSpan, который дает другие полезные свойства.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. См .: MSDN Custom TimeSpan FormatTotalMinutes
! (нетMinutes
)Вы хотите
TimeSpan
структуру:Существуют различные способы возврата дней, часов, минут, секунд и миллисекунд из этой структуры.
Если вы просто заинтересованы в разнице, то:
даст вам положительную разницу между временами независимо от порядка.
Если вы только что получили компонент времени, но время может быть разделено на полночь, вам нужно добавить 24 часа к интервалу, чтобы получить реальную разницу:
источник
Вам нужно использовать метод Subtract класса DateTime , который возвращает TimeSpan .
источник
Я обычно делаю это, вычитая два DateTime, и это дает мне TimeSpan, который будет показывать разницу.
Вот пример:
источник
ЕСЛИ вы оба можете использовать значения даты и времени в формате UTC
TimeSpan diff = dateTime1 - dateTime2;
В противном случае ваш шанс получить правильный ответ в каждом возможном случае равен нулю.
источник
источник
Вам нужно использовать TimeSpan . Вот пример кода:
источник
TimeSpan sincelast = DateTime.Now - LastUpdate;
источник
Вы можете использовать следующий способ для достижения разницы между двумя объектами Datetime. Предположим, что существуют объекты DateTime dt1 и dt2, а затем код.
источник