Categoría de Estructura Condicional Múltiple
💻 Hacer un programa que al ingresar una fecha, se debe validar que sea una fecha correcta y si es un año bisiesto o no bisiesto.
Algoritmo programacion_work
Definir fecha como Caracter;
Definir D, M, A, B como Entero;
Escribir "MOSTRAR SI UNA FECHA INGRESADA ES CORRECTA.";
Escribir Sin Saltar "INGRESE FECHA DD/MM/AAAA : ";
Leer fecha;
D <- CONVERTIRANUMERO( SUBCADENA(fecha,0,1) );
M <- CONVERTIRANUMERO( SUBCADENA(fecha,3,4) );
A <- CONVERTIRANUMERO( SUBCADENA(fecha,6,10) );
Escribir "Día : ", D;
Escribir "Mes : ", M;
Escribir "Año : ", A;
Escribir "";
SI (A >= 1900 y A <= 3000) y (M >=1 y M <=12) y (D >=1 y D <=30) Entonces
Si ((A MOD 4) == 0 y (A MOD 100) <> 0 o (A MOD 400) == 0) Entonces
Escribir "AÑO BISIESTO";
B <- 0;
SiNo
Escribir "AÑO NO ES BISIESTO";
B <- 1;
FinSi
SI (M >= 1 y M <= 12) Entonces
SI (B == 0) Entonces
Si (D >= 1 y D <= 29) Entonces
Escribir "Fecha Correcta";
SiNo
Escribir "Error en la fecha";
FinSi
SiNo
SI (B == 1) Entonces
Si (D >= 1 y D <= 28) Entonces
Escribir "Fecha Correcta";
SiNo
Escribir "Error en la fecha";
FinSi
SiNo
Escribir "Error en la fecha";
FinSi
FinSi
SiNo
Escribir "Error en la fecha";
FinSi
SiNo
Escribir "Error en la fecha";
FinSi
FinProceso
print("06. MOSTRAR SI UNA FECHA INGRESADA ES CORRECTA.")
fecha = input("INGRESE FECHA CON EL FORMATO DD/MM/AAAA : ")
D = int(fecha[0:2])
M = int(fecha[3:5])
A = int(fecha[6:10])
print(D)
print(M)
print(A)
print()
if (A >= 1900 and A <= 3000) and (M >= 1 and M <= 12) and (D >= 1 and D <= 30):
if ((A % 4) == 0 and (A % 100) != 0 or (A % 400) == 0):
print("AÑO BISIESTO")
B = 0
else:
print("AÑO NO ES BISIESTO")
B = 1
if (M >= 1 and M <= 12):
if B == 0:
if (D >= 1 and D <= 29):
print("Fecha Correcta")
else:
print("Error en la fecha")
else:
if B == 1:
if (D >= 1 and D <= 28):
print("Fecha Correcta")
else:
print("Error en la fecha")
else:
print("Error en la fecha")
else:
print("Error en la fecha")
else:
print("Error en la fecha")
package programacion_work;
import java.util.Scanner;
public class fecha_correcta {
public static void main(String[] args) {
Scanner ingreso=new Scanner(System.in);
int D, M, A, B;
String fecha,f;
System.out.print("06. MOSTRAR SI UNA FECHA INGRESADA ES CORRECTA.\n\n");
System.out.print("INGRESE FECHA DD/MM/AAAA : ");
fecha = ingreso.next();
D = Integer.parseInt(fecha.substring(0,2));
M = Integer.parseInt(fecha.substring(3,5));
A = Integer.parseInt(fecha.substring(6,10));
System.out.println("DÍA : " + D);
System.out.println("MES : " + M);
System.out.println("AÑO : " + A);
if ( (A >= 1900 && A <= 3000) && (M >=1 && M <=12) && (D >=1 && D <=30)) {
if((A % 4) == 0 && (A % 100) != 0 || (A % 400) == 0){
System.out.println("AÑO BISIESTO");
B = 0;
}else{
System.out.println("AÑO NO ES BISIESTO");
B = 1;
}
if (M >= 1 && M <= 12) {
if (B == 0) {
if (D >= 1 && D <= 29){
System.out.println("Fecha Correcta");
}else{
System.out.println("Error en la fecha");
}
}else{
if (B == 1) {
if (D >= 1 && D <= 28) {
System.out.println("Fecha Correcta");
}else{
System.out.println("Error en la fecha");
}
}else{
System.out.println("Error en la fecha");
}
}
}else{
System.out.println("Error en la fecha");
}
}else{
System.out.println("Error en la fecha");
}
}
}