Программа должна найти самого младшего (или самого старого) человека в списке. День рождения на самом деле string
. Я конвертировал даты, используя Convert.ToDateTime()
, который работает нормально. Однако в некоторых случаях вводом является просто year
, без day
и month
, например. "1945". Преобразователь не работает.
Мои вопросы:
1) какую проверку можно добавить, чтобы предотвратить такой сбой во время выполнения?
2) Как я могу преобразовать его в дату, не переопределяя строки, включающие day
и month
?
код:
DateTime curr_bday = Convert.ToDateTime(p.Birthday);
вот полная процедура:
public string the_youngest(Persons _p2)
{
DateTime youngAge = Convert.ToDateTime("01/01/1005");
DateTime curr_bday;
string to_ret = "";
foreach (var p in _p2.persons)
{
curr_bday = Convert.ToDateTime(p.Birthday);
if (curr_bday < youngAge)
{
youngAge = curr_bday;
to_ret = p.Name + " : " + p.Birthday;
}
}
return (to_ret);
}