2013-01-06 14 views

risposta

81

Questo?

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

Fai attenzione. Cosa succede se il codice viene eseguito in modo che DateTime.Now.Year sia 2013 quando viene eseguita la prima riga e 2014 quando viene eseguita la seconda riga? Il bug è estremamente raro, ma è possibile ed è facile da evitare. Il codice corretto consiste nel catturare prima l'anno in un locale e quindi calcolare il primo e l'ultimo giorno dal valore acquisito. –

+3

@EricLippert OK. Grazie. Ho corretto lo snippet. –

20

Prova questo:

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

Perché non ottenere il primo giorno del prossimo anno di calendario (il mese 1, il giorno 1) e sottrarre un giorno.

Problemi correlati