2013-01-06 15 views

Odpowiedz

81

To?

int year = DateTime.Now.Year; 
DateTime firstDay = new DateTime(year , 1, 1); 
DateTime lastDay = new DateTime(year , 12, 31); 
+16

Uważaj. Co jeśli kod działa tak, że DateTime.Now.Year to 2013, kiedy działa pierwsza linia i 2014, kiedy działa druga linia? Błąd jest niezwykle rzadki, ale jest możliwy i można go łatwo uniknąć. Poprawny kod polega na przechwyceniu roku na poziomie lokalnym, a następnie obliczeniu pierwszego i ostatniego dnia z przechwyconej wartości. –

+3

@EricLippert OK. Dzięki. Poprawiłem fragment. –

20

Spróbuj tego:

var FirstDay = new DateTime(DateTime.Now.Year, 1, 1); 
var LastDay = new DateTime(DateTime.Now.Year, 12, 31); 
1

Dlaczego nie dostaję pierwszego dnia następnego roku kalendarzowego (1 miesiąc, dzień 1) i odjąć jeden dzień.

Powiązane problemy