Я сделал программу даты рождения, которая отображает ваш DoB, она также будет учитывать високосные годы, поэтому, если вы введете год как 1995, месяц 2, день 29, она будет выполнена с ошибкой, потому что это не был високосный год. Также учитывается, сколько дней в каждом месяце, и это та часть, с которой мне нужна помощь. В настоящее время это так:
if (month == 1 / && day > 31)
{
Console.WriteLine("January only has 31 days - Enter again");
validDay = false;
}
else if (day >= 29 && !IsLeapYear(year) && month == 2)
{
Console.WriteLine("You were not born on a leap year or February only has 28 days - Enter again");
validDay = false;
}
//And so on for each month
Итак, я попробовал это так:
if (month == 1 || month == 3 || month == 5 || month == 7 ||
month == 8 || month == 10 || month == 12 && day > 31)
{
Console.WriteLine("Your birth month only has 31 days - Enter again");
validDay = false;
}
else if (day >= 29 && !IsLeapYear(year) && month == 2)
{
Console.WriteLine("You were not born on a leap year or February only has 28 days - Enter again");
validDay = false;
}
else if (month == 3 || month == 6 || month == 9 || month == 11 && day > 30)
{
Console.WriteLine("Your birth month only has 30 days - Enter again");
validDay = false;
}
И по какой-то причине он всегда будет выдавать сообщение об ошибке, даже если вы введете 1997, 5, 28. Месяц выбран в 5, но день не> 31, так почему он это делает? Я также открыт для разных способов сделать это, потому что у меня есть ощущение, что есть другой способ - может быть, массивы?