Frage Differenz zwischen zwei Daten (Anzahl der Tage) berechnen?


Ich sehe, dass diese Frage beantwortet wurde Java, JavaScript, und PHP, aber nicht C #. Also, wie könnte man die Anzahl der Tage zwischen zwei Daten in C # berechnen?


815
2017-10-22 13:47


Ursprung


Antworten:


Angenommen StartDate und EndDate sind vom Typ DateTime:

(EndDate - StartDate).TotalDays

1531
2017-10-22 13:48



Verwenden Sie das TimeSpan-Objekt, das das Ergebnis der Datumssubtraktion ist:

DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;

112
2017-10-22 13:49



Die obere Antwort ist korrekt, wenn Sie jedoch nur ganze Tage als int möchten und gerne auf die Zeitkomponente des Datums verzichten, dann überlegen Sie:

(EndDate.Date - StartDate.Date).Days

Auch hier wird angenommen, dass StartDate und EndDate vom Typ DateTime sind.


66
2017-08-27 03:33



Ich denke, das wird tun, was du willst:

DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;

40
2017-10-22 13:49



DateTime xmas = new DateTime(2009, 12, 25);
double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;

31
2017-10-22 13:49



Für den Fall, dass jemand eine Anzahl ganzer Tage als Doppel (a, b vom Typ DateTime):

 (a.Date - b.Date).TotalDays

14
2018-06-13 14:41



// Difference in days, hours, and minutes.

TimeSpan ts = EndDate - StartDate;

// Difference in days.

int differenceInDays = ts.Days; // This is in int
double differenceInDays= ts.TotalDays; // This is in double

// Difference in Hours.
int differenceInHours = ts.Hours; // This is in int
double differenceInHours= ts.TotalHours; // This is in double

// Difference in Minutes.
int differenceInMinutes = ts.Minutes; // This is in int
double differenceInMinutes= ts.TotalMinutes; // This is in double

Sie können auch den Unterschied in Sekunden, Millisekunden und Ticks erhalten.


7
2017-11-17 06:30



Du kannst es versuchen

EndDate.Date.Subtract(DateTime.Now.Date).Days

6
2018-06-11 06:18



Zum a und b als zwei DateTime Typen:

DateTime d = DateTime.Now;
DateTime c = DateTime.Now;
c = d.AddDays(145);
string cc;
Console.WriteLine(d);
Console.WriteLine(c);
var t = (c - d).Days;
Console.WriteLine(t);
cc = Console.ReadLine();

1
2017-07-10 19:16



Für Anfänger wie mich, die auf dieses kleine Problem stoßen, in einer einfachen Zeile, mit Beispielkonvertierung zu int:

int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);

Dies berechnet die gesamten Tage von Heute (DateTime.UtcNow.Date) bis zu einem gewünschten Datum (MyDateTime.Date).

Wenn myDateTime gestern oder älter als heute ist, ergibt dies ein positives (+) Ganzzahlergebnis.

Auf der anderen Seite, wenn die myDateTime morgen oder auf dem zukünftigen Datum ist, wird dies ein negatives (-) ganzzahliges Ergebnis aufgrund von Regeln der Addition ergeben.

Glückliche Kodierung! ^ _ ^


1
2017-08-01 21:36