Dans le monde d'aujourd'hui, Time.h est un sujet qui continue de susciter intérêt et débat. Que ce soit en raison de son impact sur la société, de sa pertinence dans l’histoire ou de son influence sur la culture populaire, Time.h reste aujourd’hui un sujet d’une grande importance. De nombreuses recherches et écrits ont été effectués sur Time.h au fil des ans, et sa pertinence n'a en rien diminué. De ses origines à ses implications dans le monde moderne, Time.h continue de faire l'objet d'études et de recherches dans différentes disciplines. Dans cet article, nous explorerons différents aspects de Time.h et son importance dans le monde d'aujourd'hui.
<time.h> et <ctime> sont des en-têtes, respectivement de la bibliothèque standard du langage C et du C++, qui déclarent des fonctions fournissant de manière standardisée des primitives de manipulation des dates et leur formatage.
char *asctime(const struct tm* tmptr)
tmptr
en une chaîne de caractères au format Www Mmm dd hh:mm:ss yyyy, où Www est le jour de la semaine, Mmm est le mois en lettres, dd le jour du mois, hh:mm:ss est l'heure, et yyyy est l'année. La chaîne est suivie d'un retour à la ligne et d'un caractère de fin de chaîne, pour un total de 26 caractères. La chaîne donnée en résultat est allouée statiquement et partagée par les fonctions ctime
et asctime
. À chaque fois qu'une des deux fonctions est appelée, le contenu cette chaîne est remplacé.clock_t clock(void)
char* ctime(const time_t* timer)
timer
en une chaîne au même format que asctime
. La chaîne retournée est allouée statiquement dans une zone partagée avec asctime
. ctime
utilise le buffer interne de gmtime
et localtime
en pointeur de retour, un appel à cette fonction en entrainera donc l'écrasement.double difftime(time_t timer2, time_t timer1)
struct tm* gmtime(const time_t* timer)
time_t
en une structure tm en temps UTC. Cette structure est allouée statiquement et partagée par les fonctions gmtime
, localtime
et ctime
. À chaque fois qu'une de ces fonctions est appelée, le contenu de la structure est écrasé.struct tm* gmtime_r(const time_t* timer, struct tm* result)
time_t
en une structure tm en temps UTC. La date est stockée dans la structure tm pointée par result. Ceci est une version compatible avec les threads de gmtime
.struct tm* localtime(const time_t* timer)
time_t
en une structure tm à l'heure locale. Cette structure est allouée statiquement et partagée par les fonctions gmtime
, localtime
et ctime
. À chaque fois qu'une de ces fonctions est appelée, le contenu de la structure est écrasé.time_t mktime(struct tm* ptm)
tm
en une valeur de type time_t
. mktime vérifie la structure tm, en corrigeant les valeurs de ses attributs si elles sont mal renseignées, et traduit cette structure en une valeur time_t
qui est retournée. Les valeurs d'origine des champs tm_wday et tm_yday (jour de la semaine et de l'année) de ptm sont ignorées, mais les champs sont remplis avec les valeurs qui correspondent à la date calculée. La valeur de tm_day n'est pas vérifiée jusqu'à ce que tm_wday et tm_yday soient déterminés. En cas d'erreur, la fonction retourne la valeur (time_t)-1
.time_t time(time_t* timer)
timer
. Dans le cas où timer
est nul, la valeur est seulement passée en résultat de la fonction. La norme C spécifie que le type time_t
est arithmétique, mais que son encodage n'est pas spécifié, ce qui rend ce type pratiquement opaque. Le standard POSIX spécifie que time_t
contient le nombre de secondes depuis le (heure UNIX).size_t strftime(char* s, size_t n, const char* format, const struct tm* tptr)
tm
en une chaîne de caractères, écrite dans s, qui contient au plus n caractères.CLK_PER_SEC
CLOCKS_PER_SEC
CLK_TCK
clock_t
time_t
struct tm
La représentation humaine des dates ("broken-down time" en anglais) est représentée dans la bibliothèque standard C par la structure
struct
tm
dont voici les membres:
Membre | Description |
---|---|
int tm_hour
|
heure (0 - 23) |
int tm_isdst |
Indicateur sur le décalage entre heure d'hiver et heure d'été: vaut 1 si le décalage est actif, 0 s'il ne l'est pas et une valeur négative si l'information n'est pas disponible. |
int tm_mday |
jour du mois (1 - 31) |
int tm_min |
minutes (0 - 59) |
int tm_mon |
mois (0 - 11, 0 correspond à janvier) |
int tm_sec |
secondes (0 - 59) |
int tm_wday |
jour de la semaine (0-6, 0 correspond à dimanche) |
int tm_yday |
jour de l'année (0 - 365) |
int tm_year |
nombre d'années écoulées depuis 1900 |