52 lines
1.6 KiB
Java
52 lines
1.6 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");
|
|
sc.close();
|
|
return;
|
|
}
|
|
|
|
if (!(mes > 0 && mes <= 12)){
|
|
System.out.println("Fecha inválida");
|
|
sc.close();
|
|
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");
|
|
sc.close();
|
|
return;
|
|
}
|
|
System.out.println("Fecha válida");
|
|
sc.close();
|
|
}
|