2014-11-01 178 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和下降的小數部分。