itsathere Ответов: 3

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


var receiveDetails = objDB.GetAllReceivedDetails().Where(a => a.ReceiveDate.Value.Date == DateTime.Now.Date && (((DateTime.Now.Hour) - (a.ReceiveDate.Value.Hour)) <= 1));


приведенный выше код не работает.Если у кого-то есть идея сделать разницу между двумя датами, пожалуйста, ответьте.

3 Ответов

Рейтинг:
28

OriginalGriff

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

DateTime now = DateTime.Now;
var receiveDetails = objDB.GetAllReceivedDetails().Where(a => a.ReceiveDate.Value.Date == now.Date && (now - a.ReceiveDate.Value).TotalHours <= 1);


Andy Lanng

Ура-я победил. Хороший момент насчет даты и времени.Теперь, хотя. 5

OriginalGriff

Быстрее пальцы! :смеяться:
Получает свою пятерку.

Рейтинг:
13

Andy Lanng

Если вычесть дату из datetime вы получаете объект TimeSpan. Вы можете использовать это, чтобы получить общее количество часов, которое вам нужно:

var receiveDetails = objDB.GetAllReceivedDetails()
       .Where(a => 
               a.ReceiveDate.Value.Date == DateTime.Now.Date && 
               ((DateTime.Now - a.ReceiveDate.Value).TotalHours <=1));


Надеюсь, это поможет ^_^
Энди


itsathere

var receiveDetails = objDB.GetAllReceivedDetails()
. Где (a =>
а.ReceiveDate.Ценность.Дата == Дата И Время.Сейчас.Дата &&
((значение datetime.Теперь-A. ReceiveDate.Ценность).TotalHours <=1));

Вы сделали ошибку

кстати, спасибо.

Andy Lanng

Я думаю, что должен был исправить это, прежде чем читать этот комментарий ^_^

Рейтинг:
1

Suman Zalodiya

TimeSpan difference = firstDateTime - secondDateTime;
double diffInHours = difference.TotalHours


phil.o

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