2016-10-31 5 views
-2

Ich versuche, ein Projekt zu erstellen und zu versuchen, zwischen zwei Daten aus dem Datum Uhrzeit-Picker zu vergleichen.Unterschied zwischen 2 Daten zeigt falsches Ergebnis

Sagen wir, es ist Abfahrt und Ankunftszeit. Der Benutzer wählt das Datum 5/11/2016 bei der Abreise und 6/11/2016 bei der Ankunft.

Der Code ist unten:

DateTime departure = dtpDeparture.Value.Date; 
DateTime arrival = dtpArrival.Value.Date; 

MessageBox.Show(departure- arrival).Days.ToString(); 

Das Ergebnis ist: 6576, die falsch ist .. es 1 sein soll (der Unterschied ist nur ein Tag)?

Danke für die Hilfe.

+0

Und Sie sind sicher, dass es nicht '6.576' zeigt, die korrekt sein kann, wenn die Zeit berücksichtigt wird. –

+1

Was zeigt 'MessageBox.Show (departure.ToString() +" - "+ arrival.ToString())'? –

+0

@PatrickHofman Ich glaube nicht, da ich .Value.Date so einstellen sollte, sollte die Zeit nicht berücksichtigt werden. –

Antwort

4

(departure - arrival).TotalDays hat immer für mich gearbeitet. Stellen Sie sicher, dass auch das Datumsformat korrekt ist. Möglicherweise werden Sie vom 11. Mai bis zum 11. Juni nachsehen.

+0

Ich änderte das Format der Datumsauswahl zu dd/MM/yyyy und es zeigt immer noch das gleiche Ergebnis. –

+0

Die Verwendung von 'TotalDays' ist in der Tat der richtige Ansatz. Aber es sollte immer größer oder gleich "Days" sein. Und das Problem ist, dass die "Tage" schon zu groß sind. –

+0

Danke. Diese Funktion ist korrekt. Ich habe mein Visual Studio neu gestartet und es hat funktioniert. Dies wurde gelöst. –

0

Vielleicht können Sie versuchen, [DateTime.Subtract()] Sie finden den Link here