Подтвердить что ты не робот

Вычитание двух дат

У меня есть два календаря, и каждый возвращает DateTime из calendar.SelectedDate.

Как мне выбрать вычитание двух выбранных дат друг от друга, давая мне количество дней между двумя выборами?

Существует calendar.Subtract(), но ему требуется TimeSpan вместо DateTime.

4b9b3361

Ответ 1

Вы можете использовать someDateTime.Subtract(otherDateTime), это возвращает TimeSpan, у которого есть свойство TotalDays.

Ответ 2

Просто используйте:

TimeSpan difference = end - start;
double days = difference.TotalDays;

Обратите внимание: если вы хотите рассматривать их как даты, вы должны, вероятно, использовать

TimeSpan difference = end.Date - start.Date;
int days = (int) difference.TotalDays;

Таким образом, вы не получите разные результаты в зависимости от времени.

(Вы можете использовать метод Subtract вместо оператора -, если хотите, но лично я нахожу его более понятным для использования.)

Ответ 3

Подумайте об этом.
Как вы выражаете разницу между двумя датами? С другой датой?
Вот почему вам нужен TimeSpan

DateTime dtToday = new System.DateTime(2012, 6, 2, 0, 0, 0);
DateTime dtMonthBefore = new System.DateTime(2012, 5, 2, 0, 0, 0);
TimeSpan diffResult = dtToday.Subtract(dtMonthBefore);
Console.WriteLine(diffResult.TotalDays);