DateTime Differenz in Tagen nur auf Basis des Datums

Ich muss den Unterschied in Tagen zwischen zwei Daten finden.

Zum Beispiel:

Eingang:**startDate** = 12-31-2012 23hr:59mn:00sec, **endDate** = 01-01-2013 00hr:15mn:00sec

Erwartete Ausgabe:1

Ich habe folgendes versucht:

(dt1-dt2).TotalDays und in eine Ganzzahl konvertieren, gab mir aber keine angemessene Antwort, da double in eine int - versuchte Math.Ceiling, Convert.To ... konvertiert werden muss.dt1.day - dt2.day funktioniert nicht über Monatedt.Substract() hat die gleiche Ausgabe wie Option 1, die oben erwähnt wurde.

Keines der oben genannten funktionierte, so dass ich den folgenden Code schrieb. Der Code funktioniert gut, aber ich bin der Meinung, dass es eine Lösung mit nur wenigen Codezeilen geben muss.

public static int GetDifferenceInDaysX(this DateTime startDate, DateTime endDate)
    {
        //Initializing with 0 as default return value
        int difference = 0;

        //If either of the dates are not set then return 0 instead of throwing an exception
        if (startDate == default(DateTime) | endDate == default(DateTime))
            return difference;

        //If the dates are same then return 0
        if (startDate.ToShortDateString() == endDate.ToShortDateString())
            return difference;

        //startDate moving towards endDate either with increment or decrement
        while (startDate.AddDays(difference).ToShortDateString() != endDate.ToShortDateString())
        {
            difference = (startDate < endDate) ? ++difference : --difference;
        }

        return difference;
    }

Hinweis: Ich habe keine Leistungsprobleme bei der Iteration der while-Schleife, da die maximale Differenz nicht mehr als 30 bis 45 Tage beträgt.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage