Название в основном говорит само за себя. Я получаю три предоставленных пользователем целых числа ( год
, месяц
, день
) 1 из устаревшей базы данных (которую я не могу изменить ). В настоящее время я использую следующий код для синтаксического анализа этих целых чисел в структуру DateTime
:
try {
return new DateTime(year, month, day);
} catch (ArgumentException ex) {
return DateTime.MinValue;
}
Иногда значения не представляют действительную дату (да, пользователи вводят такие вещи, как 1999-06-31 и нет, устаревшее приложение не проверяло это).Поскольку выдача исключения при неудачной проверке данных считается плохой практикой , я бы предпочел заменить это кодом без исключений. Однако единственным решением, которое я смог найти, было преобразование целых чисел в одну строку и TryParseExact
эту строку, что мне кажется еще более уродливым. Я пропустил какое-нибудь очевидное лучшее решение?
1 На самом деле, это одно целое число в формате ГГГГММДД, но преобразовать его в год, месяц и день тривиально ...