lunes, 18 de noviembre de 2013

Unidad 2 Ejercicio 15 Comprobación fecha correcta

/*
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.
Un año es bisiesto si es divisible por 4 y no por 100, o si es divisible por 400.

AÑOS BISIESTOS:

1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996,2000

1900 no es bisiesto

*/
package unidad2ejercicio152;
import java.util.Scanner;


/**
*
* @author Juan
*/
public class Unidad2Ejercicio152 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int dia,mes,anho;
        Scanner entrada = new Scanner(System.in);
        boolean correcto = true;
       
        System.out.print("Introduzca un día: ");
dia = entrada.nextInt();
System.out.print("Introduzca un mes: ");
mes = entrada.nextInt();
System.out.print("Introduzca un año: ");
anho = entrada.nextInt();
       
        switch (mes) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                if (dia<=31 && dia >=1) System.out.print("Fecha correcta, este mes tiene entre 1 y 31 días");
                 else System.out.print("Fecha incorrecta, este mes debe tener entre 1 y 31 días");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                if (dia<=30 && dia >=1) System.out.print("Fecha correcta, el mes tiene entre 1 y 30 días");
                 else System.out.print("Fecha incorrecta, este mes debe tener entre 1 y 30 días");
                break;
            case 2:
                if ((dia>=1 && dia<=28)||(dia==29 && ((anho % 4 == 0) && (anho % 100 != 0)) || (anho % 400 == 0)) ) {
                    System.out.print("Fechar correcta, Febrero tiene 28 días");
                   
                } else {
                    System.out.print("Fecha incorrecta, este mes debe tener entre 1 y 28 días salvo bisiestos");
                }
                break;
            default:
                System.out.print("Mes incorrecto");
        }
       
      
    }
}