time.h


Función mktime ANSI C

time_t mktime(struct tm *tiempoPtr);

La función mktime convierte el tiempo en formato separado, expresado como el tiempo local, en la estructura apuntada por tiempoPtr en un valor de tiempo en formato condensado con el mismo código que el valor retornado por la función time. Los valores originales de los componentes tm_wday y tm_yday de la estructura son ignorados., y los valores originales de los otros componentes no están restringidos a los intervalos indicados en la sección de struct tm. Cuando la función acabe con éxito, los valores de los componentes tm_wday y tm_yday de la estructura son asignados apropiadamente, y los otros componentes son asignados para representar el tiempo especificado, pero con sus valores forzados para los intervalos indicados en la sección de struct tm; el último valor de tm_day no es asignado hasta que tm_mon y tm_year son determinados.

Valor de retorno:

La función mktime retorna el tiempo especificado codificado como un valor de tipo time_t. Si el tiempo no puede ser representado, la función retorna el valor (time_t)-1.

Ejemplo:

#include <stdio.h>
#include <time.h>

int main( void )
{
   int segundos=0;
   time_t *actualPtr, alarma;
   struct tm *alarmaPtr;

   printf( "Introduzca los segundos en el futuro para la alarma: " );
   scanf( "%d", &segundos );

   *actualPtr = time( NULL );
   alarmaPtr = localtime( actualPtr );
   alarmaPtr->tm_sec += segundos;
   alarma = mktime( alarmaPtr );

   printf( "La hora local: %s\n", ctime(actualPtr) );

   while( difftime( alarma, *actualPtr ) > 0 )
      *actualPtr = time( NULL );

   printf( "ALARMA!!!\n\n" );
   printf( "La hora local: %s\n", ctime(actualPtr) );

   return 0;
}