Разница DateTime в днях только на основе даты

Мне нужно найти разницу в днях между двумя датами.

Например:

Входные данные:**startDate** = 12-31-2012 23hr:59mn:00sec, **endDate** = 01-01-2013 00hr:15mn:00sec

Ожидаемый результат:1

Я попробовал следующее:

(dt1-dt2).TotalDays и преобразовать в целое число, но не дал мне соответствующего ответа, так как двойной должен быть преобразован в int - пробовал Math.Ceiling, Convert.To ...dt1.day - dt2.day не работает через месяцыdt.Substract() имеет тот же результат, что и вариант 1, упомянутый выше.

Ничего из вышеперечисленного не сработало, поэтому я написал следующий код. Код работает хорошо, но я чувствую, что должно быть решение только с несколькими строками кода.

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

Примечание. У меня нет проблем с производительностью в итерации цикла while, поскольку максимальная разница не будет превышать 30–45 дней.