Este si que funciona. Lo tenia guardado por alguna parte y no lo habia encontrado jaja
Código C:
Ver original#include <stdio.h>
struct Fecha {
int dia;
int mes;
int anio;
};
int comparar(struct Fecha fecha, struct Fecha inicio, struct Fecha fin);
int main () {
struct Fecha inicio = { 20, 01, 2000 };
struct Fecha fecha = { 20, 01, 2000 };
struct Fecha fin = { 01, 01, 2020 };
printf( "%s\n", ( comparar
( fecha
, inicio
, fin
))? "Esta entre las fechas de inicio y fin":"No esta entre las fechas de inicio y fin" );
return 0;
}
int comparar(struct Fecha fechaDada, struct Fecha fechaInicio, struct Fecha fechaFin){
unsigned long fecha = (fechaDada.anio * 365) + (fechaDada.mes * 28) + fechaDada.dia;
unsigned long inicio = (fechaInicio.anio * 365) + (fechaInicio.mes * 28) + fechaInicio.dia;
unsigned long fin = (fechaFin.anio * 365) + (fechaFin.mes * 28) + fechaFin.dia;
if ( fecha >= inicio && fecha <= fin ){
return 1;
}else{
return 0;
}
}
Este convierte toda la fecha en un valor único al que si se puede hacer comparaciones.
Suerte.