2009-07-28 38 views

Trả lời

49

Todays ngày một năm trước sẽ là

DateTime lastYear = DateTime.Today.AddYears(-1); 
+0

Chính xác, cảm ơn :) –

+0

+1 cho việc đánh dấu nhanh như vậy! – AdaTheDev

+4

FYI, Điều này có tính đến năm nhuận: Nếu trường hợp hiện tại đại diện cho ngày nhuận trong năm nhuận, giá trị trả lại tùy thuộc vào ngày đích: Nếu giá trị + DateTime.Year cũng là năm nhuận, giá trị trả về đại diện cho ngày nhuận trong năm đó. Ví dụ: nếu bốn năm được thêm vào ngày 29 tháng 2 năm 2012, ngày được trả lại là ngày 29 tháng 2 năm 2016. Nếu giá trị + Ngày giờ.Year không phải là năm nhuận, giá trị trả lại đại diện cho ngày trước ngày nhuận trong năm đó. Ví dụ: nếu một năm được thêm vào ngày 29 tháng 2 năm 2012, ngày được trả về là ngày 28 tháng 2 năm 2013. –

2
DateTime.Now.AddYears(-1); 
+0

-1 Bản sao câu trả lời được chấp nhận trước đó –

+0

Chúng dài hơn một giây so với người khác không cố ý lặp lại câu trả lời ... kinda crazy ... – Zargold

5

Ý anh là gì bởi "năm qua ngày"?

Nếu bạn chỉ muốn ngày hôm nay trừ đi một năm, hãy thử như sau:

DateTime myDateTime = DateTime.Now.AddYears(-1); 

Tôi hy vọng đó là những gì bạn cần.

UPDATE: Chết tiệt, tôi là cách để làm chậm nó dường như :(

+0

-1 Nhân bản câu trả lời được chấp nhận trước đó –

3

sử dụng DateTime thạo http://fluentdatetime.codeplex.com/

var oneYearAgo = 1.Years().Ago(); 
+0

+1 Ít nhất điều này là khác nhau. Hy vọng rằng ai đó (@JonSkeet) sẽ nói chuyện qua nhiều cách khác nhau để làm điều đó trong Noda Time! –

Các vấn đề liên quan