2012-03-21 16 views
7

Mi chiedo se ci sia un modo migliore per ottenere l'ultima cifra di un anno da un oggetto DataTimeDateTime formato stringa ultima cifra dell'anno

var date = DateTime.Now; 
string year1 = date.ToString("y"); //NOT OK return Month year (eg March 2012) 
char year2 = date.ToString("yy")[1]; //OK return last digit of the year (eg 2) 
char year3 = date.ToString("yy").Last(); //OK same as above using linq 

Qualcuno sa se un formato già predifine esiste per retreiving l'ultima cifra dell'anno?

Grazie

risposta

22

È possibile farlo con semplice Modulo di matematica:

int digit = date.Year % 10; 
+0

grazie, mi sono perso! Accetterò la risposta whem possibile – Guillaume

+0

se si prende mod 10 quindi restituirà 5 dal 2005 –

+0

Nizza. Sebbene sia necessario utilizzare il modulo 10 anziché il modulo 100. – Guffa

1

E 'questo quello che vuoi?

DateTime.Now.Year.ToString().Substring(3); 
3
DateTime d = DateTime.Now; 
int digit = d.Year % 10; 
-1

Perché si non utilizzare un semplice Substring (1,1) sull'uscita stringa di 2 cifre?

4

No, non è disponibile il numero custom format string per ottenere l'ultima cifra dell'anno.


C'è una stringa di formato personalizzata "y", ma che restituirà comunque due cifre, solo non riempite a zero. Cioè Il 2009 sarà formattato come "9", ma il 2010 sarà formattato come "10".

È possibile utilizzare una stringa vuota letterale di rendere "y" la stringa di formato personalizzato invece della stringa di formato standard:

date.ToString("''y"); 

Ciò restituirà le ultime due cifre, ad esempio "12", piuttosto rispetto al formato standard "Marzo 2012".

+0

Funziona correttamente grazie. – JCO9

Problemi correlati