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:
Saludos y gracias #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(); }