Frage

Ich möchte die Zeitspanne zwischen zwei Zeitpunkten berechnen, die ich in einer Datenbank gespeichert habe.Ich möchte also im wahrsten Sinne des Wortes wissen, wie viel Zeit zwischen den beiden Werten vergeht.

14:10:20 - 10:05:15 = 02:05:05

Das Ergebnis wäre also 02:05:05.

Wie könnte ich dies mit C# erreichen?

14:10:20 ist das Format, in dem ich es in meiner Datenbank gespeichert habe.

War es hilfreich?

Lösung

Lesen Sie die zwei Zeitwert in Variablen Timespan, dann ein .Subtract() auf dem größeren Span Variable führt den Timespan Ergebnis zu erhalten.

z. TimeSpan difference = t1.Subtract(t2);.

Andere Tipps

Ihr erster Schritt besteht darin, die in Ihrer Datenbank gespeicherten Zeitwerte in .NET zu übertragen DateTime Strukturen.

Wenn Sie sie als SQL-DateTime-Werte in der Datenbank gespeichert haben, können Sie sie direkt als abrufen DateTime.Es würde ungefähr so ​​aussehen:

SQLCommand getTimeCommand = new SQLCommand("SELECT time FROM table", dbConnection);
SQLDataReader myReader = getTimeCommand.ExecuteReader();
while (myReader.Read())
{
    DateTime time = myReader.GetDateTime(0);
}
myReader.Close();

Ihre Implementierung kann abweichen. Weitere Informationen finden Sie in der ADO.NET-Dokumentation in der MSDN-Bibliothek.

Wenn Sie bereits eine Zeichenfolge haben, die die Zeit darstellt, können Sie die Zeichenfolge in a analysieren DateTime mit den statischen Methoden

DateTime.Parse 

oder

DateTime.ParseExact

In Ihrem Fall müssen Sie möglicherweise verwenden ParseExact, das mit einer Formatzeichenfolge versehen werden kann, die definiert, wie die Zeichenfolge gelesen werden soll.Beispiele finden Sie in der MSDN-Bibliothek.

Dauern in .NET werden in a gespeichert TimeSpan Struktur.Es ist einfach, die zwischen zwei Datums- und Uhrzeitangaben verstrichene Zeit zu ermitteln:

DateTime time1, time2; //filled with your timevalues from the db
TimeSpan elapsed = d2 - d1;

elapsed enthält nun die Zeitspanne zwischen den beiden DateTimes.Es gibt mehrere Mitglieder, auf die die Struktur zugreifen kann TimeSpan.Suchen Sie in der MSDN-Bibliothek nach den benötigten Dateien.

Datetime-Objekte unterstützen den Operator „-“, so dass Sie nur Ihre Zeit in solche Objekte lesen und sie subtrahieren. Um zu testen, check this out:

DateTime then = DateTime.Now;
Thread.Sleep(500);
DateTime now = DateTime.Now;
TimeSpan time = now - then;
MessageBox.Show(time.ToString());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top