diff --git a/src/Condicionales11.java b/src/Condicionales11.java new file mode 100644 index 0000000..bd9613b --- /dev/null +++ b/src/Condicionales11.java @@ -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(); +} \ No newline at end of file