Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Ejercicio 20
- Diseñar un programa en el que se ingresan tres variables: DIA, MES y AÑO (en forma numérica); y devuelva la fecha del día siguiente (en formato DIA/MES/AÑO).
- Se deben considerar los años bisiestos, cantidad de días de cada mes, etc. En caso de insertar números reales o fechas inválidas, indicar con un mensaje.
- */
- #include<iostream>
- using namespace std;
- int main()
- {
- int dia, mes, anio;
- cout<<"Digite los siguientes datos"<<endl;
- cout<<"Dia --> ";
- cin>>dia;
- cout<<"Mes --> ";
- cin>>mes;
- cout<<"Anio --> ";
- cin>>anio;
- // Mostramos en pantalla el dia ingresado
- cout<<"\nFecha Ingresada: ";
- cout<<dia<<"/"<<mes<<"/"<<anio<<endl;
- // Primeramente analizamos los meses con 31 dias. Enero(1), Marzo(3), Mayo(5), Julio(7), Agosto(8), Octubre(10). OBS: Diciembre(12) tambien tiene 31 dias,
- // pero analizaremos como un caso especial debido a que es un punto critico para cambiar de anio
- if(mes==1 or mes==3 or mes==5 or mes==7 or mes==8 or mes==10 or mes==12){
- if(dia>0 and dia<31)
- dia++; // Si dia es menor al punto critico(31), le sumamos +1 al dia
- else if(dia == 31 and mes==12){ // En caso que dia sea 31 y mes sea Diciembre, el siguinte dia es 1/1/anio+1
- dia = 1;
- mes = 1;
- anio++;
- }
- else if(dia==31){
- dia = 1; // Si dia es 31, pasamos al siguinte mes yel dia se inicializa a 1
- mes++;
- }
- else
- cout<<"Fecha ingresada es Incorrecta"<<endl; // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
- }
- // Ahora analizamos los meses con 30 dias. Abril(4), Junio(6), Septiembre(9), Noviembre(11)
- else if(mes==4 or mes==6 or mes==9 or mes==11){
- if(dia>0 and dia<30) // Si dia es menor al punto critico(30), le sumamos +1 al dia
- dia++;
- else if(dia==30){
- dia = 1;
- mes++;
- }
- else
- cout<<"Fecha ingresada es Incorrecta"<<endl; // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
- }
- // Por ultimo analizamos el mes de Febrero que es una caso especial(28 o 29 dias). Para esto promeramente determinamos si el dia es bisiesto o no
- // En caso de serlo, Febrero tiene 29 dias. Caso contrario tiene 28 dias
- else if(mes==2){
- if(anio%4==0 and anio%100!=0 or anio%400==0){ // Condicion de anio Bisiesto (Mirar Ejercicio 19)
- if(dia>0 and dia<29)
- dia++;
- else if(dia==29){
- dia = 1;
- mes++;
- }
- else
- cout<<"Fecha ingresada es Incorrecta"<<endl; // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
- }
- else if(dia<=0 or dia>29)
- cout<<"Fecha ingresada es Incorrecta"<<endl; // La fecha ingresada esta fuera de rango
- else{ // Si no cumple condicion de bisiesto
- if(dia>0 and dia<28)
- dia++;
- else if(dia==28){
- dia = 1;
- mes++;
- }
- else
- cout<<"Fecha ingresada es Incorrecta"<<endl; // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
- }
- }
- else
- cout<<"Fecha ingresada es Incorrecta"<<endl; // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
- // FInalmente mostramos en pantalla la fecha
- cout<<"\n Dia siguinte: ";
- cout<<dia<<"/"<<mes<<"/"<<anio<<endl;
- }
Add Comment
Please, Sign In to add comment