Files
Tema-2_alternativas-y-bucles/src/Condicionales11.java
T

48 lines
1.5 KiB
Java

// 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;
}
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;
}
System.out.println("Fecha válida");
sc.close();
}