Для этого лучше всего подойдет оператор switch.
public Date(int cMonth, int cDate, int cYear, int cDayToDate, String cStrMonth, int dayYear) {
switch (cMonth) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (cDate > 31)
throw new IllegalArgumentException();
break;
case 4:
case 6:
case 9:
case 11:
if (cDate > 30)
throw new IllegalArgumentException();
break;
case 2:
int days = isLeapYear(cYear) ? 29 : 28;
if (cDate > days)
throw new IllegalArgumentException();
break;
default:
throw new IllegalArgumentException();
}
date = cDate;
}
Что-то ближе к тому, что вы просили, но что-то гораздо менее эффективное - это
public Date(int cMonth, int cDate, int cYear, int cDayToDate, String cStrMonth, int dayYear) {
if (Arrays.asList(1, 3, 5, 7, 8, 10, 12).contains(cMonth)) {
if (cDate > 31)
throw new IllegalArgumentException();
} else if (Arrays.asList(4, 6, 9, 11).contains(cMonth)) {
if (cDate > 30)
throw new IllegalArgumentException();
} else if (cMonth == 2) {
int days = isLeapYear(cYear) ? 29 : 28;
if (cDate > days)
throw new IllegalArgumentException();
} else {
throw new IllegalArgumentException();
}
date = cDate;
}
Кстати, числа, начинающиеся с 0
, восьмеричны, поэтому 08
и09
не действительны.