2009-07-16 151 views

回答

43
var now = DateTime.Now;  
var firstDayCurrentMonth = new DateTime(now.Year, now.Month, 1); 

var lastDayLastMonth = firstDayCurrentMonth.AddDays(-1); 
+2

好極了!只是做了一個單元測試,並且適用於飛躍和非飛躍年! – 2009-07-16 15:14:29

13
DateTime now = DateTime.Now; 
DateTime lastDayOfLastMonth = now.Date.AddDays(-now.Day); 
+0

多次DateTime.Now調用可能代價高昂,因爲每次引用DateTime結構的新實例時都會創建。 – opedog 2009-07-16 14:53:08

+9

@opedog:昂貴是一個相對的術語。這個* slow *版本可以在我的機器上管理大約1.7M次迭代/秒,相比之下,如果我調用`DateTime.Now`一次並重新使用該實例,則每秒大約需要2.7M次迭代。當然,這是一個不錯的改進,但我懷疑它是否會在大多數現實世界中被注意到。 – LukeH 2009-07-16 15:06:41

相關問題