#include <time.h> // <ctime> en C++
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).
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).
Renvoit le timestamp (de type time_t
) correspondant aux données renseignées dans la structure passée en paramètre.
#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; }
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :