Advertisement
lukhavi

Fechas

Aug 29th, 2019
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<conio.h>   //getch()
  3.  
  4. #define true 1
  5. #define false 0
  6.  
  7. /*Abril, Junio, Septiembre y Noviembre. = 30 dias
  8. Enero, Marzo, Mayo, Julio, Agosto, Octubre y Diciembre = 31 dias
  9. Febrero = 28 dias excepto ano bisiesto que son 29 dias
  10.  */
  11.  
  12.  /*Casos
  13.     1.- mes == Febrero y dias mayor a 28
  14.     2.- mes = Abril, Junio, Septiembre y Noviembre && dia mayor a 30
  15.     3.- Falta implementar ano bisiesto para el mes de febrero.
  16.  */
  17.  
  18. struct MonthDay{
  19.     char *mes;
  20.     char dia;
  21. }mesdia[]={ // 12 elementos MonthDay
  22.     {"Enero",31},           //0
  23.     {"Febrero",28},
  24.     {"Marzo",31},           //2
  25.     {"Abril",30},
  26.     {"Mayo",31},            //4
  27.     {"Junio",30},  
  28.     {"Julio",31},           //6
  29.     {"Agosto",31},          //7
  30.     {"Septiembre",30},
  31.     {"Octubre",31},         //9
  32.     {"Noviembre",30},
  33.     {"Diciembre",31}};      //11
  34. //#define N_MESES sizeof(mesdia)/sizeof(mesdia[0])
  35.  
  36. enum Mes {ENERO = 1, FEBRERO, MARZO, ABRIL, MAYO, JUNIO,JULIO,AGOSTO,SEPTIEMBRE,
  37.     OCTUBRE,NOVIEMBRE, DICIEMBRE};
  38.  
  39. int main (int argc, char* argv[]){
  40.  
  41. int mes,dia,ano;
  42. short seguir_dia;
  43. short seguir_mes;
  44.  
  45.  
  46.         do{
  47.             printf("DIGITE EL NUMERO DEL MES QUE DESEA VER\n");
  48.             scanf("%i", &mes);
  49.             seguir_mes = false;
  50.             if(mes<=0 || mes>12){
  51.                 printf("El numero del mes ingresado no es valido\n");
  52.                 seguir_mes = true;
  53.             }
  54.         }while(seguir_mes);
  55.    
  56.         do{
  57.             printf("DIGITE EL DIA DEL RESPECTIVO MES\n");
  58.             scanf("%i", &dia);
  59.             seguir_dia = false;
  60.             if(dia<1 || dia>31){    //  dia inexistente
  61.                 printf("El dia %i indicado no es valido\n",dia);
  62.                 seguir_dia = true;
  63.             }else if(mes==FEBRERO && dia>28){
  64.                 printf("El dia %i para el mes %i no es valido\n",dia,mes);
  65.                 seguir_dia = true;
  66.             }else if((mes==ABRIL||mes==JUNIO||mes==SEPTIEMBRE||mes==NOVIEMBRE)&&dia==31){
  67.                 printf("El dia %i para el mes %i no es valido\n",dia,mes);
  68.                 seguir_dia = true;
  69.             }  
  70.         }while(seguir_dia);
  71.        
  72.         do{
  73.             printf("DIGITE EL ANO DEL RESPECTIVO MES\n");
  74.             scanf("%i", &ano);
  75.             if(ano<0)
  76.                 printf("El numero del ano ingresado no es valido\n");
  77.             }while(ano<0);
  78.                
  79.             printf("La fecha indicada es: %i de %s del %i \n",dia,mesdia[mes-1].mes,ano);
  80.            
  81.             getch();
  82.             return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement