quisiera que me ayuden con este problema que tengo en un programa para que una fecha ingresada por el usuario si es mayor en 15 dias a la fecha actual y menor a 30 dias de la fecha actual sea aceptada; la fecha actual es tomada de time.h , espero me puedan ayudar con esto
Para obtener la fecha N días antes o después de la actual los pasos son, utilizando las facilidades de la biblioteca estándar de C:
1) Obtienes la fecha actual con la función time.
2) En base al objeto de tipo time_t obtienes uno de tipo "struct tm" mediante la función localtime o gmtime.
3) Incrementas el valor del campo tm_mon.
4) Reajustas los valores mediante la función mktime.
Un ejemplo sencillo:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
struct tm a = {0};
struct tm b = {0};
time_t now;
a.tm_mday -= 54;
printf("-54 ==> %4d/%02d/%02d\n", a.tm_year + 1900, a.tm_mon + 1, a.tm_mday);
printf("Now ==> %4d/%02d/%02d\n", b.tm_year + 1900, b.tm_mon + 1, b.tm_mday);
b.tm_mday += 15;
printf("+15 ==> %4d/%02d/%02d\n", b.tm_year + 1900, b.tm_mon + 1, b.tm_mday);
return EXIT_SUCCESS;
}
Y su salida (al día de hoy) es:
-54 ==> 2013/12/31
Now ==> 2014/02/23
+15 ==> 2014/03/10
Un saludo