Код, показанный ниже, работает нормально, но только для одной части, оператора if ... else, который должен возвращать -1, если введенный месяц меньше 1 или больше 12, а введенный год меньше 1 илибольше, чем 9999
Я много раз компилировал его, я даже пытался переставить условия, такие как изменение меньше чем на большее, чем затем помещать весь оператор switch в оператор if.кажется, ничего не работает
public static int getDaysInMonth(int month, int year) {
int maxDay = 31;
int secMaxDay = 30;
int specialDay = 29;
int minDay = 28;
if ((month < 1 || month > 12) && (year < 1 || year > 9999)) {
return -1;
} else {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return maxDay;
case 2:
if (isLeapYear(year)){
return specialDay;
} else {
return minDay;
}
default:
return secMaxDay;
}
}
}
Ожидаемый результат для моего кода выше: когда месяц или год или оба имеют значение меньше 1 или больше максимального значения, он должен вернуть -1.