2013-08-01 41 views
0

我剛在我的代碼中發現了一個DateTime數學錯誤,今天8月1日,即新月的開始。 我將DateTime類成員設置爲7天前的DateTime值。所以它應該有的價值在8月1日,將是7月25日C#日期時間數學 - 跨越到前幾個月

我清楚地看到問題時,試圖從1(DateTime.Now.Day-7)減去7。

那麼,如何創建一個始終有效的DateTime對象,無論它是哪一天?

錯誤:

Year, Month, and Day parameters describe an un-representable DateTime. 

下面是代碼:

DateFrom = (new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day-7)); 

什麼是將此成員設置爲7天前從當前日期時間的正確方法是什麼?

回答

11

就減七天DateTime.Now

DateFrom = DateTime.Now.Date.AddDays(-7); 
+0

完美。謝謝,安德烈。只要SO允許,你會接受你的答案 – Slinky

2
DateFrom date = DateTime.Now.AddDays(-7); 
1

您可以使用DateTime對象的AddDays方法,它的整數。由於它也帶有負值,所以您可以輕鬆地及時回溯。

DateFrom = DateTime.Now.AddDays(-7);