Fonction mktime

Entête à  inclure

#include <time.h>  // <ctime> en C++

Fonction mktime

time_t mktime( struct tm * tm );

Cette fonction transforme une structure struct tm, exprimée en temps local, en un timestamp de type time_t. Il s'agit donc de l'opération inverse à celle proposée par la fonction localtime.

Il est a noter que les attributs tm_wday et tm_yday ne seront pas considéré par l'algorithme de calcul. De même, si vous spécifiez un numéro de jour qui est non compatible pour le mois considéré (exemples : le 33 Janvier ou le 31 Avril ) alors ce sera un des jours qui suivent qui sera pris en compte (par exemple le 2 Février ou le 1 Mai, en rapport au deux exemples précédents).

Paramètre

  • tm : un pointeur vers une donnée de type struct tm. Attention a ne pas passer un pointeur NULL, vous arriveriez à une erreur de type Segmentation fault (en tout cas, sur un système Linux/Unix).

Valeur de retour

Renvoit le timestamp (de type time_t) correspondant aux données renseignées dans la structure passée en paramètre.

Exemple de code

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

int main( int argc, char * argv[] ) {

    struct tm myDate;
    myDate.tm_mday = 6;
    myDate.tm_mon = 3;  
    myDate.tm_year = 114;   // Date == April 6, 2014
    myDate.tm_hour = 12;
    myDate.tm_min = 30;
    myDate.tm_sec = 15;     // Time == 12:30:15

    time_t timestamp = mktime( & myDate );
    printf( "Timestamp == %d\n", timestamp );
    
    const char * strDate = asctime( localtime( & timestamp ) );
    printf( "Initial time == %s\n", strDate );
            
    return 0;
}

Fonctions et types connexes