From 38fce30e8b654ec7b2375d10b984576ece4a67cf Mon Sep 17 00:00:00 2001 From: PC de clase Date: Fri, 25 Sep 2026 09:40:18 +0200 Subject: [PATCH] =?UTF-8?q?Quitar=20c=C3=B3digo=20espagueti=20de=20ejercic?= =?UTF-8?q?io=2011?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Condicionales11.java | 62 +++++++++++++--------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) 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;