miércoles, 5 de noviembre de 2014

Ejercicio 14: Fechas correctas


package ejercicio15fechascorrectas;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio15FechasCorrectas {

    /**
     * @param args the command line arguments
     */
    public static boolean esBisiesto(int num){
        return ( (num%4==0 && num%100!=0)|| (num%500==0) );
    }
    public static void main(String[] args) {
        int dia,mes,anho;
        Scanner leer = new Scanner(System.in);
        boolean correcta=true;
        String mensaje="";
       
        System.out.println("Introduzca el día");
        dia = leer.nextInt();
        System.out.println("Introduzca el día");
        mes = leer.nextInt();
        System.out.println("Introduzca el día");
        anho = leer.nextInt();
       
        switch (mes) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
    

        case 10:
            case 12:
                if (dia>31 || dia<1) {
                    correcta=false;
                    mensaje = "Este mes ("+mes+") tiene un mínimo de 1 días y máximo de 31";
                }
                break;
           
            case 4:
            case 6:
            case 9:
            case 11:
                 if (dia>30 || dia<1) {
                    correcta=false;
                    mensaje = "Este mes ("+mes+") tiene un mínimo de 1 días y máximo de 30";
                }
                break;
            case 2:
                if (dia>29)
                {
                    correcta = false;
                    if (esBisiesto(anho)) mensaje = "Este mes ("+mes+") del anho "+anho+" tiene un mínimo de 1 días y máximo de 29";
                    else mensaje = "Este mes ("+mes+") del anho "+anho+" tiene un mínimo de 1 días y máximo de 28";
                }
                else if (dia==29 && !esBisiesto(anho) && dia >0) mensaje= "Febrero sólo tiene 28 días";
                /*
                if (dia>0 && ( dia < 29) || (dia==29 && esbisiesto)) correcta = true;
                else correcta= false;
                */
                break;
                   }
        if (correcta) System.out.println("Fecha correcta");
        else System.out.println("Fecha es incorrecta: "+mensaje);
   
    }
   
}