2014-11-01 5 views
-2

Я использую ASP.NET, C# и SQL Server. В базе данных указана дата: 2014-10-28. Только год, месяц и день, не время.Сравните дни двух дат

У меня есть этот код:

DateTime data1 = new DateTime(); 
    DateTime data2 = DateTime.Now; 

    data1 = reader.GetDateTime(3); 

    double total= (data2 - data1).TotalDays; 
    Response.Write(total.ToString()); 

Единственная проблема это выход. Результатом этого является «4,81351624131366». Потому что, возможно, это разница в часах. Возможно ли установить данные2, чтобы дать мне только Y, M и D?

Или конвертировать итог в дни?

+1

Вы можете использовать 'DateTime.Today' вместо' DateTime.Now' ... обратите внимание, что для получения текущей даты используется системный часовой пояс - это то, что вы хотите? –

+0

wow thats один простой. Спасибо, очень много работы 100% –

+0

нашел что-то, что вы можете проверить [C# сравнить дни 2 дат] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8# q = C% 23% 20compare% 20the% 20days% 20of% 202% 20dates) – MethodMan

ответ

0

Свойство TotalDays также возвращает дробную часть дней. Поскольку дата, которую вы сравниваете, была 4 дня назад в полночь, вы получаете 4 полных дня и еще 4/5 дня (так как это не совсем полночь, когда вы выполняете это).

Либо то, что сказал Джон (используйте DateTime.Today вместо DateTime.Now, чтобы получить часть даты с моментом полуночи), или использовать Days свойство, которое просто возвращает округленные 4 и капли дробной части.