2009-07-28 12 views

Odpowiedz

49

Dzisiejsza data rok temu byłoby

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

Dokładnie, dzięki :) –

+0

+1 za tak szybkie odejście od znaku! – AdaTheDev

+4

FYI, to bierze pod uwagę rok przestępny: Jeśli bieżąca instancja reprezentuje dzień przestępny w roku przestępnym, wartość zwracana zależy od daty docelowej: Jeśli wartość + DateTime.Year również jest rokiem przestępnym, wartość zwracana reprezentuje dzień przestępny w tym roku. Na przykład, jeśli do 29 lutego 2012 r. Zostaną dodane cztery lata, zwrócona data to 29 lutego 2016 r. Jeśli wartość + Data, czas. Rok nie jest rokiem przestępnym, wartość zwrotu reprezentuje dzień przed dniem przestępnym w tym roku. Na przykład, jeśli zostanie dodany jeden rok do 29 lutego 2012 r., Zwrócona data to 28 lutego 2013 r. –

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

-1 Duplikat wcześniej zaakceptowanej odpowiedzi –

+0

Zostały dosłownie sekundy później niż drugi facet nie celowo powtarzając odpowiedzi ... to jest kinda crazy ... – Zargold

5

Co masz na myśli przez "ostatnie lata data"?

Jeśli chcesz tylko datę dzisiaj minus jeden rok, spróbuj wykonać następujące czynności:

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

Mam nadzieję, że to, co trzeba.

UPDATE: Cholera, jestem sposób, aby go zwolnić wydaje :(

+0

-1 Duplikat wcześniej zaakceptowanej odpowiedzi –

3

użyciu Fluent DateTime http://fluentdatetime.codeplex.com/

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

+1 Przynajmniej to jest inne. Mam nadzieję, że ktoś (@JonSkeet) omówi różne sposoby robienia tego w czasie Noda! –

Powiązane problemy