2012-03-21 3 views
7
года

Интересно, если есть лучший способ, чтобы получить последнюю цифру года из объекта datatimeDateTime формат строки последняя цифра

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 

Кто-нибудь знает, если уже predifine формат существует для retreiving последней цифры года?

Благодаря

ответ

22

Вы можете сделать это с помощью простого Modulo математики:

int digit = date.Year % 10; 
+0

спасибо, я пропустил это! Я согласен с ответом, возможно, – Guillaume

+0

, если вы примете мод 10, то он вернет 5 с 2005 года –

+0

Ницца. Хотя вы должны использовать modulo 10, а не modulo 100. – Guffa

1

Является ли это то, что вы хотите?

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

Почему бы вам не использовать простую подстроку (1,1) на выходе строки 2-значной?

4

Нет, нет custom format string, чтобы получить последнюю цифру года.


Существует строка пользовательского формата «y», но она все равно вернет две цифры, но не будет заполняться нулями. То есть 2009 будет отформатирован как «9», но 2010 будет отформатирован как «10».

Вы можете использовать пустую строку литерал, чтобы «у» будет пользовательский формат строки вместо стандартного строки формата:

date.ToString("''y"); 

Это вернет две последние цифры, например, «12», а чем стандартный формат «Март 2012».

+0

Он работает правильно. – JCO9

Смежные вопросы