/* 15. Hacer un programa que compruebe si una fecha con el formato: dia, mes, año es correcta.
* Hay que controlar todas las situaciones anómalas que se puedan dar.
* Los meses de 31 días son: 1,3,5,7,8,10,12.
* NOTA: utilizar la sentencia swith para diferenciar los meses de la fecha
*/
/* Me he tomado la libertad de obligarte a escribir bien la fecha, JA!*/
import java.util.Scanner;
public class ejercicio15 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int dia;
int mes;
int ano;
boolean bisiesto;
int diaMax;
System.out.println("Introduce La fecha: ");
System.out.println("Dia: ");
dia = reader.nextInt();
System.out.println("Mes: ");
mes = reader.nextInt();
System.out.println("Año: ");
ano = reader.nextInt();
while (ano < 0) {
System.out.println("Guru meditation: 000000000001");
System.out.println("Año no puede ser menor que 0;");
System.out.println("Introduzca un nuevo año: ");
ano = reader.nextInt();
}
/*
* 1º ver si el Año es Bisiesto o no, para ver si mes 2 puede tener
* posible dia 29. Mes > 1 && < 12, para saber si tiene 30, 31, (28 ||
* 29) dias. Y comprobar que Dia > 1 && < (31 || 30 || 29 || 28)
*/
if ((ano % 4 == 0) && ((ano % 100 != 0) || (ano % 400 == 0)))
bisiesto = true;
else
bisiesto = false;
while (mes > 12) {
System.out.println("Guru meditation: 000000000002");
System.out.println("Solo hay 12 meses;");
System.out.println("Introduzca un nuevo mes: ");
mes = reader.nextInt();
}
while (mes <= 0) {
System.out.println("Guru meditation: 000000000003");
System.out.println("Mes debe ser positivo;");
System.out.println("Introduzca un nuevo mes: ");
mes = reader.nextInt();
}
switch (mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
diaMax = 31;
break;
case 2:
if (bisiesto == true) {
diaMax = 29;
} else {
diaMax = 28;
}
break;
default:
diaMax = 30;
}
while (dia <= 0 || dia > diaMax) {
System.out.println("Guru meditation: 000000000004");
System.out.println("Día no puede tener ese valor;");
System.out.println("Introduzca un nuevo dia: ");
dia = reader.nextInt();
}
System.out.println("La fecha introducida: " + dia + "-" + mes + "-"
+ ano + " es correcta.");
System.out.println("END_OF_LINE");
}
}
en serio Guru Meditation? eso no se usa desde el Amiga xD
ResponderEliminar