`tm' undeclared (first use in this function)
void ListarCaducidad(void)
{
//printf("Funcion Listar Caducidad.\n");
time_t fecha;
struct sStock Stock;
struct tm *gmtime(const time_t *);
int i, encontrado;
i = 0;
encontrado = 0;
struct tm *tiempoFechaPtr;
fecha = time (NULL);
CargarArchivosProductos (&Stock);
tiempoFechaPtr = gmtime (&fecha);
time_t rawtime;
tm *ptm;
time (&rawtime);
ptm = gmtime (&rawtime);
printf ("Fecha actual: %s\n", asctime (tiempoFechaPtr));
printf ("Productos caducados:\n");
while (i{
if (FECHA.anyo < ptm->tm_year)
encontrado = 1;
else if ((FECHA.anyo == ptm->tm_year) && (FECHA.mes < (ptm->tm_mon + 1)) //Enero equilvadria a 0, por lo que sumamos 1.
encontrado = 1;
else if ((FECHA.anyo == ptm->tm_year) && (FECHA.mes == (ptm->tm_mon + 1) && (FECHA.dia < ptm->tm_mday))
encontrado = 1;
if (encontrado)
MostrarProducto(Stock.Producto[i]);
++i;
}
Pausa();
}
struct tm * timeinfo;
time_t rawtime;
// esta llamada a localtime es para que asigne si se usa el
// horario de verano/invierno, se podria hacer a mano,
// pero lo haria asi por seguridad. A parte de que he hecho
// copy paste de un ejemplo
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = FECHA.anyo - 1900;
timeinfo->tm_mon = FECHA.mes - 1;
timeinfo->tm_mday = FECHA.dia;
timeinfo->tm_hour = 0;
timeinfo->tm_min = 0;
timeinfo->tm_sec =0;
//rawtime es lo que compararas con la fecha actual
rawtime = mktime ( timeinfo );