2013-02-23 81 views
0

我想獲取兩個日期時間之間的天數,但不是根據確切的時間跨度,而是根據日期a和日期b之間的「日期」差異。無需花費數小時。根據日期獲取天數,而不是持續時間?

到目前爲止,我計算出項目的使用年齡:

(DateTime.Now - creationDate).Days 

這段代碼的問題是,對於所創建的一天,而不是24小時前出現,但較少的東西,它會輸出「0天「,這對我的用戶來說顯然不是很清楚。

所以我想要完成的是,即使是在下午11:59創建的項目,例如,在時鐘到午夜時立即獲得「1天大」的輸出。我怎麼能做到這一點?

+0

這個問題應該interresting爲您提供:http://stackoverflow.com/questions/3177836/how-to-format-time -since-xxx-eg-4-minutes-ago-similar-to-stack-exchange-site – Larry 2013-02-23 13:23:56

+0

@Laurent:在這種情況下,我看不出有什麼相關性。 – 2013-02-23 13:25:18

+0

你說得對。我認爲背後的問題是向用戶顯示明確的時間跨度。所以我把這個鏈接作爲評論,可能會激發一些想法。 – Larry 2013-02-23 13:35:09

回答

3

兩個選項:

1)先取兩個日期:

var days = (DateTime.Today - creationDate.Date).Days; 

2)使用我的Noda Time日期/時間庫,而不是使用LocalDate所涉及的兩個日期,然後Period.Between(start, end, PeriodUnits.Days)得到幾天的時間。 (你也可以得到幾個星期,幾個月等等)。在Noda Time中 - 毫無疑問,獲得「今天的日期」有點棘手 - 在.NET中隱含地使用「系統時區」,Noda Time迫使你更加明確。

2

我會用它只是像

int days =(int)DateTime.Now.Subtract(creationDate).TotalDays; 

希望這有助於

相關問題