Jak uzyskać różnicę czasu między dwoma DateTime
obiektami przy użyciu języka C #?
159
Poniższy przykład ilustruje, jak to zrobić:
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);
Po wykonaniu wypisuje "30", ponieważ istnieje 30-minutowa różnica między datą / godziną.
Wynikiem DateTime.Subtract(DateTime x)
jest obiekt TimeSpan, który daje inne przydatne właściwości.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Zobacz: Niestandardowy format MSDN TimeSpanTotalMinutes
! (nieMinutes
)Chcesz
TimeSpan
struktury:Istnieją różne metody odzyskiwania dni, godzin, minut, sekund i milisekund z tej struktury.
Jeśli interesuje Cię tylko różnica, to:
da ci dodatnią różnicę między czasami niezależnie od zamówienia.
Jeśli masz właśnie składnik czasu, ale czasy mogą być podzielone o północy, musisz dodać 24 godziny do zakresu, aby uzyskać rzeczywistą różnicę:
źródło
Potrzebne jest użycie metody Subtract klas DateTime , która zwraca TimeSpan .
źródło
Sposób, w jaki zwykle to robię, to odejmowanie dwóch DateTime, a to daje mi TimeSpan, który pokaże mi różnicę.
Oto przykład:
źródło
JEŚLI obie są wartościami daty i czasu UTC, które możesz zrobić
TimeSpan diff = dateTime1 - dateTime2;
W przeciwnym razie szansa na uzyskanie poprawnej odpowiedzi w każdym możliwym przypadku wynosi zero.
źródło
źródło
Musisz użyć TimeSpan . Oto przykładowy kod:
źródło
TimeSpan sincelast = DateTime.Now - LastUpdate;
źródło
Możesz użyć w następujący sposób, aby uzyskać różnicę między dwoma obiektami daty i godziny. Załóżmy, że istnieją obiekty DateTime dt1 i dt2, a następnie kod.
źródło