2014-11-01 142 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”。因为这可能是小时的差异。它可能设置data2给我只是Y,M和D?

或将总数转换为天数?

+1

您可以使用'DateTime.Today'而不是'DateTime.Now' ...注意那使用系统默认时区来获取当前日期 - 是你想要的吗? – 2014-11-01 19:36:13

+0

哇这是一个容易。非常感谢100%的工作 – 2014-11-01 19:37:27

+0

发现了一些可以查看的东西[C#比较两天的日期](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 2014-11-01 19:43:20

回答

0

属性TotalDays也返回小数部分的天数。由于您比较的日期是4天前的午夜,因此您将获得4天的全天和额外的4/5天(因为执行此操作时不完全是午夜)。

无论什么乔恩说,(使用DateTime.Today而不是DateTime.Now获得午夜的时间日期部分),或使用Days财产,这只会返回一个圆4和下降的小数部分。