Advertisement
Abelsor

VPL_Fecha_Sgte_Semana

Feb 23rd, 2023
630
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int validar();
  6.  
  7. int main()
  8. {
  9.     float diaF,mesF,anhoF;
  10.     //DESARROLLE AQUI EL EJERCICIO
  11.    
  12.     cin>>anhoF;
  13.     cin>>mesF;
  14.     cin>>diaF;
  15.    
  16.     // Castear variables a tipo entero
  17.         int dia = diaF;
  18.         int mes = mesF;
  19.         int anho = anhoF;
  20.    
  21.     if(anhoF!=int(anhoF) or anhoF<0 or mesF!=int(mesF) or mesF<0 or mesF>12 or diaF!=int(diaF) or diaF<0 or diaF>31 ){
  22.         cout<<"Anho="<<anhoF<<", mes="<<mesF<<", dia="<<diaF<<" ---> No es una fecha valida";
  23.     }
  24.        
  25.     else if(!((anho % 4 == 0 && anho % 100 != 0) || anho % 400 == 0) && mes==2 && diaF>28){ // Verificar que no sea anho bisiesto y mes febrero (max 28 dias)
  26.         cout<<"Anho="<<anho<<", mes="<<mes<<", dia="<<dia<<" ---> No es una fecha valida";
  27.     }
  28.    
  29.     else{
  30.        
  31.         switch(mes){
  32.             case 1: // Enero, 31 dias
  33.                 dia += 7;
  34.                
  35.                 if(dia>31){
  36.                     dia = dia-31;
  37.                     mes++;
  38.                 }
  39.                
  40.                 break;
  41.             case 2: // Febrero, 29 (Anho Bisiesto), 28 dias
  42.                 dia += 7;
  43.                
  44.                 if((anho % 4 == 0 && anho % 100 != 0) || anho % 400 == 0){ //Condicion de anho bisiesto
  45.                     if(dia>29){
  46.                         dia = dia-29;
  47.                         mes++;
  48.                     }
  49.                 }
  50.                 else{
  51.                     if(dia>28){
  52.                         dia = dia-28;
  53.                         mes++;
  54.                     }
  55.                 }
  56.                
  57.                 break;
  58.             case 3: // Marzo, 31 dias
  59.                 dia += 7;
  60.                
  61.                 if(dia>31){
  62.                     dia = dia-31;
  63.                     mes++;
  64.                 }
  65.                
  66.                 break;
  67.             case 4: //Abril, 30 dias
  68.                 dia += 7;
  69.                
  70.                 if(dia>30){
  71.                     dia = dia-30;
  72.                     mes++;
  73.                 }
  74.                
  75.                 break;
  76.             case 5: // Mayo, 31 dias
  77.                 dia += 7;
  78.                
  79.                 if(dia>31){
  80.                     dia = dia-31;
  81.                     mes++;
  82.                 }
  83.                
  84.                 break;
  85.             case 6: // Junio, 30 dias
  86.                 dia += 7;
  87.                
  88.                 if(dia>30){
  89.                     dia = dia-30;
  90.                     mes++;
  91.                 }
  92.                
  93.                 break;
  94.             case 7: // Julio, 31 dias
  95.                 dia += 7;
  96.                
  97.                 if(dia>31){
  98.                     dia = dia-31;
  99.                     mes++;
  100.                 }
  101.                
  102.                 break;
  103.             case 8: // Agosto, 31 dias
  104.                 dia += 7;
  105.                
  106.                 if(dia>31){
  107.                     dia = dia-31;
  108.                     mes++;
  109.                 }
  110.                
  111.                 break;
  112.             case 9: // Septiembre, 30 dias
  113.                 dia += 7;
  114.                
  115.                 if(dia>30){
  116.                     dia = dia-30;
  117.                     mes++;
  118.                 }
  119.                
  120.                 break;
  121.             case 10: // Octubre, 31 dias
  122.                 dia += 7;
  123.                
  124.                 if(dia>31){
  125.                     dia = dia-31;
  126.                     mes++;
  127.                 }
  128.                
  129.                 break;
  130.             case 11: // Noviembre, 30 dias
  131.                 dia += 7;
  132.                
  133.                 if(dia>30){
  134.                     dia = dia-30;
  135.                     mes++;
  136.                 }
  137.                
  138.                 break;
  139.             case 12: // Diciembre, 31 dias
  140.                 dia += 7;
  141.                
  142.                 if(dia>31){
  143.                     dia = dia-31;
  144.                     mes=1;
  145.                     anho++;
  146.                 }
  147.                
  148.                 break;
  149.         }
  150.        
  151.         cout<<"Anho="<<anhoF<<", mes="<<mesF<<", dia="<<diaF<<" ---> ";
  152.         printf("%02d", dia); // Se utiliza printf porque este permite modificar el numero de digitos a mostrar
  153.         cout<<"-";
  154.         printf("%02d", mes);
  155.         cout<<"-";
  156.         printf("%04d", anho);
  157.     }
  158.    
  159.    
  160.     return 0;
  161. }
  162.  
  163.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement