Wie erhalte ich DateTime
mit C # den Zeitunterschied zwischen zwei Objekten?
159
Das folgende Beispiel zeigt, wie das geht:
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);
Bei der Ausführung wird "30" ausgegeben, da zwischen Datum und Uhrzeit ein Unterschied von 30 Minuten besteht.
Das Ergebnis von DateTime.Subtract(DateTime x)
ist ein TimeSpan-Objekt, das andere nützliche Eigenschaften bietet.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Siehe: MSDN Custom TimeSpan FormatTotalMinutes
! (nichtMinutes
)Sie wollen die
TimeSpan
Struktur:Es gibt verschiedene Methoden, um die Tage, Stunden, Minuten, Sekunden und Millisekunden von dieser Struktur zurückzugewinnen.
Wenn Sie nur an dem Unterschied interessiert sind, dann:
gibt Ihnen den positiven Unterschied zwischen den Zeiten unabhängig von der Reihenfolge.
Wenn Sie gerade die Zeitkomponente erhalten haben, die Zeiten jedoch bis Mitternacht aufgeteilt werden können, müssen Sie die Zeitspanne um 24 Stunden verlängern, um die tatsächliche Differenz zu erhalten:
quelle
Sie müssen lediglich die Subtract-Methode der DateTime- Klassen verwenden, die einen TimeSpan zurückgibt .
quelle
Die Art und Weise, wie ich es normalerweise mache, ist das Subtrahieren der beiden DateTime und dies bringt mir eine Zeitspanne, die mir den Unterschied sagt.
Hier ist ein Beispiel:
quelle
WENN beide UTC-Datums- / Uhrzeitwerte sind, können Sie dies tun
TimeSpan diff = dateTime1 - dateTime2;
Andernfalls ist Ihre Chance, in jedem möglichen Fall die richtige Antwort zu erhalten, Null.
quelle
quelle
Sie müssen einen TimeSpan verwenden . Hier ist ein Beispielcode:
quelle
TimeSpan sincelast = DateTime.Now - LastUpdate;
quelle
Sie können auf folgende Weise verwenden, um einen Unterschied zwischen zwei Datetime-Objekten zu erzielen. Angenommen, es gibt DateTime-Objekte dt1 und dt2, dann den Code.
quelle