Ejercicio 11 (espagueti)

This commit is contained in:
PC de clase committed 2026-09-25 09:32:10 +02:00
1 parent bd3b1be755
commit 395ce74a0d
1 file changed
+70
+70
View File
@@ -0,0 +1,70 @@
// Escribe un programa que solicite tres valores enteros con el día, mes y año de
//una fecha e indique si se trata de valores válidos para una fecha. (tener en cuenta
//el número de días de cada mes)(el año será válido si es >=1970 y menor que 3000)
import java.util.Scanner;
void main() {
Scanner sc = new Scanner(System.in);
System.out.println("Introduce dia mes y año:");
int dia = sc.nextInt();
int mes = sc.nextInt();
int ano = sc.nextInt();
if (!(ano >= 1970 && ano < 3000)) {
System.out.println("Fecha inválida");
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 (!(dia > 0 && dia <= diasMaximo)) {
System.out.println("Fecha inválida");
return;
}
System.out.println("Fecha válida");
sc.close();
}