/*
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");
}
}
}
No hay comentarios:
Publicar un comentario