mktime
|
Défini dans l'en-tête
<time.h>
|
||
Renormalise l'heure locale exprimée sous forme d'un struct tm et la convertit également en temps depuis l'époque comme un objet time_t . arg - > tm_wday et arg - > tm_yday sont ignorés. Les valeurs dans arg ne sont pas vérifiées pour détecter les dépassements de plage.
Une valeur négative de
arg
-
>
tm_isdst
amène
mktime
à tenter de déterminer si l'heure d'été était en vigueur au moment spécifié.
Si la conversion en
time_t
réussit, l'objet
arg
est modifié. Tous les champs de
arg
sont mis à jour pour correspondre à leurs plages appropriées.
arg
-
>
tm_wday
et
arg
-
>
tm_yday
sont recalculés en utilisant les informations disponibles dans les autres champs.
Table des matières |
Paramètres
| arg | - | pointeur vers un tm objet spécifiant l'heure calendaire locale à convertir |
Valeur de retour
Le temps écoulé depuis l'époque comme un objet time_t en cas de succès, ou - 1 si arg ne peut pas être représenté comme un objet time_t (POSIX requiert également que EOVERFLOW soit stocké dans errno dans ce cas).
Notes
Si l'objet
struct
tm
a été obtenu à partir de la fonction POSIX
strptime
ou d'une fonction équivalente, la valeur de
tm_isdst
est indéterminée et doit être définie explicitement avant d'appeler
mktime
.
Exemple
#define _POSIX_C_SOURCE 200112L // for setenv on gcc #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { setenv("TZ", "/usr/share/zoneinfo/America/New_York", 1); // POSIX-specific struct tm tm = *localtime(&(time_t){time(NULL)}); printf("Today is %s", asctime(&tm)); printf("(DST is %s)\n", tm.tm_isdst ? "in effect" : "not in effect"); tm.tm_mon -= 100; // tm_mon is now outside its normal range mktime(&tm); // tm_isdst is not set to -1; today's DST status is used printf("100 months ago was %s", asctime(&tm)); printf("(DST was %s)\n", tm.tm_isdst ? "in effect" : "not in effect"); }
Sortie possible :
Today is Fri Apr 22 11:53:36 2016 (DST is in effect) 100 months ago was Sat Dec 22 10:53:36 2007 (DST was not in effect)
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 7.27.2.3 La fonction mktime (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.27.2.3 La fonction mktime (p: 285-286)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.27.2.3 La fonction mktime (p: 390-391)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.23.2.3 La fonction mktime (p: 340-341)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.12.2.3 La fonction mktime
Voir aussi
|
(C23)
(C11)
|
convertit le temps depuis l'époque en temps calendaire exprimé en heure locale
(fonction) |
|
Documentation C++
pour
mktime
|
|