Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2010, 11:33
benekid
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 5 meses
Puntos: 0
Validar Fecha en C (struct)

Saludos compañeros, tengo el siguiente codigo... pero no me funciona ! =S
Creo que lo tengo todo bien... pero no me compila (en Code::Blocks 8.02)

Y la verdad... no se que hacer... les dejo el code:

Código:
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>

#define es_anio_bisiesto(y)  ((((y)%400)==0)||((((y)%4)==0)&&(((y)%100)!=0)))

struct date fecha;


enum bool
{
    false = 0,
    true = 1
};

enum Mes
{
   Enero = 1,
   Febrero = 2,
   Marzo = 3,
   Abril = 4,
   Mayo = 5,
   Junio = 6,
   Julio = 7,
   Agosto = 8,
   Septiembre = 9,
   Octubre = 10,
   Noviembre = 11,
   Diciembre = 12
};


int dias_en_el_mes (int y, int m)
{
    const int dias[12] = { 31, 28, 31, 30, 31, 30,
                           31, 31, 30, 31, 30, 31 };
   int resultado;

   resultado = dias[m-1];

   if ( m == Febrero && es_anio_bisiesto ( y ) )
      resultado++;

   return resultado;
}


bool es_fecha_valida ( struct date fecha )
{
   if ( fecha.da_mon < Enero || fecha.da_mon > Diciembre )
      return false;

   if ( fecha.da_day < 0 || fecha.da_day >=
             dias_en_el_mes ( fecha.da_year, fecha.da_mon ) )
      return false;

   return true;
}

void main()
{
   struct date fecha1, fecha2;

   fecha1.da_day=1;
   fecha1.da_mon=6;
   fecha1.da_year=2006;

   fecha2.da_day=30;
   fecha2.da_mon=2;
   fecha2.da_year=2006;

   clrscr();

   if(es_fecha_valida(fecha1))
      printf("La fecha1 es valida\n");
   else
      printf("La fecha1 NO es valida\n");

   if(es_fecha_valida(fecha2))
      printf("La fecha2 es valida");
   else
      printf("La fecha2 NO es valida");

   getch();
}
Saludos y gracias
__________________
---> Webnox.es