Для домашней работы я должен попросить у пользователя: Имя и дату рождения (Месяц, день, год как собственные текстовые поля). Затем посчитайте их возраст. Я также должен отобразить ошибку, если введены неправильные данные, такие как пустые поля и неправильные дни месяца (например, поле месяца не должно быть 0 или больше 12). У меня есть базовый тест: если (dayTextBox.Text> 31 || dayTextBox.Text <0), то он изменит вывод на недопустимый день. Сообщение об ошибке, когда ничего не введено и нажата кнопка «Выполнить», выглядит следующим образом: входная строка была в неправильном формате. Я попробовал Parse для переменных, которые войдут в DateTime, и это не сработало. Также, если введенный месяц равен 0, я получаю: параметры Year, Month и Day описывают непредставляемую дату и время. </p>
Я использовал метку для отображения ошибок. Это работает. Однако, когда я проверяю пустые или нулевые поля, программа вылетает. Без проверки пустых полей программа работала без сбоев. Я попытался поставить это, если проверка выше других проверок (они все в, если, если еще ряд операторов), а также перед переменными, которые помещают каждое из полей, которые изменяют TextBox.Text (s) в формат DateTimeдля расчета возраста.
if (string.IsNullOrEmpty(NameOutputLabel.Text) || string.IsNullOrEmpty(MonthDOBTextBox.Text) || string.IsNullOrEmpty(DayDOBTextBox.Text) || string.IsNullOrEmpty(YearDOBTextbox.Text))
{
AgeOutputLabel.Text = "Cannot have empty fields";
}
для справки вот пример других моих проверок
if (month < 1 || month > 12)
{
AgeOutputLabel.Text = "Invalid month. Must be between 1 and 12";
}
Вот как настроен мой DateTime:
int year = Convert.ToInt32(YearDOBTextbox.Text);
int month = Convert.ToInt32(MonthDOBTextBox.Text);
int day = Convert.ToInt32(DayDOBTextBox.Text);
// This sets the calculation for determining the age
DateTime currentDate = DateTime.UtcNow;
DateTime usersBirthDate = new DateTime(year, month, day);
int age = currentDate.Year - usersBirthDate.Year;
Хотелось бы просто проверить наличие пустых и пустых полей, наряду с проверками правильности ввода дня, месяца, года. Все при отображении правильной ошибки (поля не могут быть пустыми || Месяц должен быть между 1 и 12 и т. Д.)