240 Stimmen

Anzeige der Differenz zwischen zwei Datumswerten in Stunden

Ich rufe zwei Datums- und Zeitwerte aus der Datenbank ab. Sobald der Wert abgerufen ist, benötige ich die Differenz zwischen den beiden Werten. Zu diesem Zweck erstelle ich eine Zeitspannenvariable, um die Differenz der beiden Datumswerte zu speichern.

TimeSpan? variable = datevalue1 - datevalue2;

Nun muss ich die Differenz, die in der Variablen "Zeitspanne" gespeichert ist, in Form der Anzahl der Stunden darstellen. Ich bezog mich auf TimeSpan.TotalHours konnte aber aus irgendeinem Grund nicht dasselbe anwenden. Wie kann ich das tun? Ich verwende C# für ein MVC-Projekt. Ich muss einfach die Differenz Wert in Stunden zeigen?

EDIT: Da die Zeitspanne nullbar war, konnte ich die Eigenschaft Gesamtstunden nicht verwenden. Jetzt kann ich es verwenden, indem ich TimeSpanVal.Value.TotalHours ;

274voto

MarkKGreenway Punkte 7984

Sie sollten sich auch Folgendes ansehen

var hours = (datevalue1 - datevalue2).TotalHours;

135voto

Hans Olsson Punkte 52909

Ich glaube, Sie sind verwirrt, weil Sie nicht erklärt haben, eine TimeSpan Sie haben eine TimeSpan? die eine löschbar TimeSpan . Entfernen Sie entweder das Fragezeichen, wenn es nicht nullbar sein muss, oder verwenden Sie variable.Value.TotalHours .

124voto

safi Punkte 3438

Im Beispiel werden zwei Datetime-Objekte erstellt, eines mit der aktuellen Zeit und ein weiteres mit 75 Sekunden, die zur aktuellen Zeit hinzugefügt werden. Dann rufen wir die Methode .Subtract() für das zweite DateTime-Objekt auf. Diese gibt ein TimeSpan-Objekt zurück. Sobald wir das TimeSpan-Objekt erhalten haben, können wir die Eigenschaften von TimeSpan verwenden, um die tatsächlichen Stunden, Minuten und Sekunden zu erhalten.

DateTime startTime = DateTime.Now;

 DateTime endTime = DateTime.Now.AddSeconds( 75 );

 TimeSpan span = endTime.Subtract ( startTime );
 Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
 Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
 Console.WriteLine( "Time Difference (hours): " + span.Hours );
 Console.WriteLine( "Time Difference (days): " + span.Days );

Ergebnis:

Time Difference (seconds): 15
Time Difference (minutes): 1
Time Difference (hours): 0
Time Difference (days): 0

41voto

Ilya Kogan Punkte 21256

Gibt es einen Grund für die Verwendung von Nullable ?

Wenn Sie Folgendes verwenden möchten Nullable dann können Sie schreiben variable.Value.TotalHours .

Oder Sie können einfach schreiben: (datevalue1 - datevalue2).TotalHours .

8voto

Mario Levesque Punkte 956

Hier ist ein weiteres Beispiel für die Subtraktion zweier Daten in C# ...

if ( DateTime.Now.Subtract(Convert.ToDateTime(objDateValueFromDatabase.CreatedOn)).TotalHours > 24 ) 
{ 
... 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X