import acm.io.*; public class FechaCorrecta { public static void main(String[] args) { int dia,mes,anio; boolean fechacorrecta = false; IODialog dialog = new IODialog(); dia=dialog.readInt("Introduzca el día"); mes=dialog.readInt("Introduzca el mes"); anio=dialog.readInt("Introduzca el año"); if (anio>0) { if (mes == 2) // El mes es febrero, hay que comprobar si el año es bisiesto { if(anio%4==0) { if (anio%100 == 0 && anio%400!=0) // El año no es bisiesto { if (dia>0 && dia<29) fechacorrecta=true; } else // El año es bisiesto { if (dia>0 && dia<=29) fechacorrecta=true; } } else // El año no es bisiesto if (dia>0 && dia<=28) fechacorrecta=true; } else { // Si el mes es enero, marzo, mayo, julio, agosto, octubre o diciembre if (mes == 1 || mes == 3 || mes == 5 || mes==7 || mes==8 || mes==10 || mes ==12) { if (dia>0 && dia<=31) fechacorrecta=true; } else { // Si el mes es abril, junio, septiembre o noviembre if (mes == 4 || mes == 6 || mes == 9 || mes == 11) { if (dia>0 && dia<=30) fechacorrecta=true; } } } } if (fechacorrecta) dialog.println(dia+"/"+mes+"/"+anio+ " es una fecha correcta"); else dialog.println(dia+"/"+mes+"/"+anio+ " NO es una fecha correcta"); } }