Abelsor

Semana 3 - Ejercicio 20

Feb 15th, 2022 (edited)
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.19 KB | None | 0 0
  1. /*
  2.                     Ejercicio 20
  3.     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).
  4.      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.
  5. */
  6.  
  7. #include<iostream>
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.     int dia, mes, anio;
  14.    
  15.     cout<<"Digite los siguientes datos"<<endl;
  16.     cout<<"Dia --> ";
  17.     cin>>dia;
  18.     cout<<"Mes --> ";
  19.     cin>>mes;
  20.     cout<<"Anio --> ";
  21.     cin>>anio;
  22.    
  23.     // Mostramos en pantalla el dia ingresado
  24.     cout<<"\nFecha Ingresada: ";
  25.     cout<<dia<<"/"<<mes<<"/"<<anio<<endl;
  26.    
  27.     // 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,
  28.     // pero analizaremos como un caso especial debido a que es un punto critico para cambiar de anio
  29.    
  30.     if(mes==1 or mes==3 or mes==5 or mes==7 or mes==8 or mes==10 or mes==12){
  31.         if(dia>0 and dia<31)
  32.             dia++; // Si dia es menor al punto critico(31), le sumamos +1 al dia
  33.         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
  34.             dia = 1;
  35.             mes = 1;
  36.             anio++;
  37.         }
  38.         else if(dia==31){
  39.             dia = 1; // Si dia es 31, pasamos al siguinte mes yel dia se inicializa a 1
  40.             mes++;
  41.         }
  42.         else
  43.             cout<<"Fecha ingresada es Incorrecta"<<endl;    // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
  44.            
  45.     }
  46.    
  47.     // Ahora analizamos los meses con 30 dias. Abril(4), Junio(6), Septiembre(9), Noviembre(11)
  48.     else if(mes==4 or mes==6 or mes==9 or mes==11){
  49.         if(dia>0 and dia<30)  // Si dia es menor al punto critico(30), le sumamos +1 al dia
  50.             dia++;
  51.         else if(dia==30){
  52.             dia = 1;
  53.             mes++;
  54.         }
  55.         else
  56.             cout<<"Fecha ingresada es Incorrecta"<<endl;    // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
  57.     }
  58.    
  59.     // 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
  60.     //  En caso de serlo, Febrero tiene 29 dias. Caso contrario tiene 28 dias
  61.    
  62.     else if(mes==2){
  63.         if(anio%4==0 and anio%100!=0 or anio%400==0){ // Condicion de anio Bisiesto (Mirar Ejercicio 19)
  64.             if(dia>0 and dia<29)
  65.                 dia++;
  66.             else if(dia==29){
  67.                 dia = 1;
  68.                 mes++;
  69.             }
  70.             else
  71.                 cout<<"Fecha ingresada es Incorrecta"<<endl;    // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango
  72.         }
  73.         else if(dia<=0 or dia>29)
  74.             cout<<"Fecha ingresada es Incorrecta"<<endl;    // La fecha ingresada esta fuera de rango
  75.         else{   // Si no cumple condicion de bisiesto
  76.             if(dia>0 and dia<28)
  77.                 dia++;
  78.             else if(dia==28){
  79.                 dia = 1;
  80.                 mes++;
  81.             }
  82.             else
  83.                 cout<<"Fecha ingresada es Incorrecta"<<endl;    // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango  
  84.         }
  85.     }
  86.    
  87.     else
  88.         cout<<"Fecha ingresada es Incorrecta"<<endl;    // Si no cumple ninguna de las condiciones, la fecha ingresada esta fuera de rango  
  89.        
  90.     // FInalmente mostramos en pantalla la fecha
  91.     cout<<"\n Dia siguinte: ";
  92.     cout<<dia<<"/"<<mes<<"/"<<anio<<endl;
  93. }
Add Comment
Please, Sign In to add comment