diff --git a/src/Condicionales11.java b/src/Condicionales11.java index bd9613b..fba5337 100644 --- a/src/Condicionales11.java +++ b/src/Condicionales11.java @@ -17,50 +17,28 @@ void main() { return; } - int diasMaximo = 0; - switch (mes){ - case 1: - diasMaximo = 31; - break; - case 2: - boolean bisiesto = (ano % 4 == 0 && ano % 100 != 0) || (ano % 400 == 0); - diasMaximo = (bisiesto) ? 29 : 28; - break; - case 3: - diasMaximo = 31; - break; - case 4: - diasMaximo = 30; - break; - case 5: - diasMaximo = 31; - break; - case 6: - diasMaximo = 30; - break; - case 7: - diasMaximo = 31; - break; - case 8: - diasMaximo = 31; - break; - case 9: - diasMaximo = 30; - break; - case 10: - diasMaximo = 31; - break; - case 11: - diasMaximo = 30; - break; - case 12: - diasMaximo = 31; - break; - default: - System.out.println("Fecha inválida"); - return; + if (!(mes > 0 && mes <= 12)){ + System.out.println("Fecha inválida"); + return; } + boolean bisiesto = (ano % 4 == 0 && ano % 100 != 0) || (ano % 400 == 0); + final int diasMes[] = { + 31, // Enero + (bisiesto) ? 29 : 28, // Febrero + 31, // Marzo + 30, // Abril + 31, // Mayo + 30, // Junio + 31, // Julio + 31, // Agosto + 30, // Septiembre + 31, // Octubre + 30, // Noviembre + 31}; // Diciembre + + int diasMaximo = diasMes[mes-1]; + if (!(dia > 0 && dia <= diasMaximo)) { System.out.println("Fecha inválida"); return;