Advertisement
lencinasalejo

esFechaValida

May 8th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int esFechaValida (int, int, int);
  4. int esBisiesto (int);
  5. int verDia (int);
  6. int verMes (int);
  7.  
  8. int main()
  9. {
  10.     int d,m,a;
  11.     do{
  12.         printf ("Ingrese una fecha valida: ");
  13.         scanf("%d", &d);
  14.         scanf("%d", &m);
  15.         scanf("%d", &a);
  16.     }while (esFechaValida(d,m,a)==0);
  17.     printf ("\n%d/%d/%d", d,m,a);
  18.     return 0;
  19. }
  20. int esFechaValida(int dia, int mes, int anio){
  21.     int aux;
  22. if (verMes(mes)==1){
  23.     if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12 ){
  24.         aux=verDia(dia);
  25.     }
  26.     else {
  27.         if (mes!=2){
  28.             if (verDia(dia)==1 && dia<=30){
  29.                 aux=1;
  30.             }else{aux=0;}
  31.         }else{
  32.         if (esBisiesto(anio)==1){
  33.             if(verDia(dia)==1 && dia<=29){
  34.                 aux=1;
  35.             }else{aux=0;}
  36.         }else{
  37.  
  38.         if (verDia(dia)==1&&dia<=28){
  39.             aux=1;
  40.         }else{aux=0;}
  41.  
  42.         }
  43.         }
  44.     }
  45. }
  46. else{aux=0;}
  47. return aux;
  48. }
  49. int esBisiesto(int anio){
  50.     int aux;
  51. if (anio%4==0 && anio%100!=0 || anio%400==0){
  52.     aux=1;
  53. }else{aux=0;}
  54. return aux;
  55. }
  56. int verDia(int dia){
  57.     int aux;
  58. if (dia<=31 && dia>=1){
  59.     aux=1;
  60. }else{aux=0;}
  61. return aux;
  62. }
  63. int verMes(int mes){
  64. int aux;
  65. if (mes<=12 && mes>=1){
  66.     aux=1;
  67. }else{aux=0;}
  68. return aux;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement