Różnica DateTime w dniach tylko na podstawie daty

Muszę znaleźć różnicę w dniach między dwiema datami.

Na przykład:

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

Oczekiwany wynik:1

Próbowałem:

(dt1-dt2).TotalDays i przekonwertować do liczby całkowitej, ale nie dał mi odpowiedniej odpowiedzi, ponieważ podwójne musi zostać przekonwertowane na int - wypróbowane Math.Ceiling, Convert.To ...dt1.day - dt2.day nie działa przez wiele miesięcydt.Substract() ma takie samo wyjście jak opcja 1 wspomniana powyżej.

Żadna z powyższych czynności nie zadziałała, więc skończyło się na napisaniu następującego kodu. Kod działa dobrze, ale uważam, że musi istnieć rozwiązanie zawierające tylko kilka linii kodu.

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;
    }

Uwaga: Nie mam żadnego problemu z wydajnością w iteracji pętli while, ponieważ maksymalna różnica nie będzie większa niż 30 do 45 dni.

questionAnswers(3)

yourAnswerToTheQuestion