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

Разница между двумя датами

Я пробовал много способов рассчитать круглое число дней между двумя датами, я имею в виду, считая целые дни. Пример того, что мне нужно:

   START DATE            END DATE          Day Count  

24/02/2010 16:26     24/02/2010 16:26         1  
20/02/2010 18:16     24/02/2010 16:26         5  
31/12/2009 20:00     24/02/2010 16:26         56  
15/07/2009 20:59     24/02/2010 16:26         225  
4b9b3361

Ответ 1

DateTime можно вычесть, чтобы получить TimeSpan. TimeSpan имеет TotalDays, который представляет собой количество дней (включая дробные дни).

int DaysBetween(DateTime d1, DateTime d2) {
    TimeSpan span = d2.Subtract(d1);
    return (int)span.TotalDays;
}

ПРИМЕЧАНИЕ Задержки времени подписаны. Если d1 = 1/9/11 и d2 = 1/11/11, то d1.subtract(d2) = timespan -2 дня. Поэтому, если вы хотите использовать временной интервал, чтобы узнать, соответствуют ли даты в течение X дней друг от друга, вам необходимо принять абсолютное значение общих дней...

Math.Abs(span.TotalDays)

Ответ 2

Вы можете использовать оператор вычитания в двух экземплярах DateTime (или DateTimeOffset, так как он имеет тот же вычитания, и рекомендуемая структура для использования для значений даты в .NET), чтобы получить TimeSpan.

После этого вы можете вызвать Days свойство, чтобы получить число целых дней, которое представляет TimeSpan.

Если вы хотите количество целых и дробных дней, просмотрите свойство TotalDays.

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

Ответ 3

DateTime dtOne;
DateTime dtTwo;

// to get the total days in between
int answer = (dtTwo - dtOne).TotalDays