LOCALTIME |
Temps local |
---|---|
Langage C | time.h |
Syntaxe
struct tm *localtime(const time_t *sec) |
Paramètres
Nom | Description |
---|---|
sec | Ce paramètre permet d'indiquer les secondes |
Description
Cette fonction permet de convertir des secondes en date et heure.
Algorithme
MODULE localtime(seconds_since_epoch) * Vérifie si l'entrée est valide SI seconds_since_epoch est NULL ALORS * Retourne NULL si l'entrée est invalide RETOURNE NULL FIN SI * Convertir les secondes en temps local utc_time ← convert_seconds_to_utc(seconds_since_epoch) * Conversion en UTC local_offset ← get_timezone_offset() * Obtenir le décalage du fuseau horaire local_time ← utc_time + local_offset * Appliquer le décalage * Décomposer le temps local en une structure tm result ← new struct tm result.tm_sec ← local_time modulo 60 * Secondes result.tm_min ← (local_time / 60) modulo 60 * Minutes result.tm_hour ← (local_time / 3600) modulo 24 * Heures result.tm_mday ← calculate_day_of_month(local_time) * Jour du mois result.tm_mon ← calculate_month(local_time) * Mois result.tm_year ← calculate_year(local_time) * Année depuis 1900 result.tm_wday ← calculate_weekday(local_time) * Jour de la semaine result.tm_yday ← calculate_day_of_year(local_time) * Jour de l'année result.tm_isdst ← check_daylight_saving(local_time) * Heure d'été * Retourner la structure tm RETOURNE result |
Remarques
- Conversion de l'heure UTC en heure locale : La fonction localtime() prend en entrée un pointeur vers un objet de type time_t, représentant une heure exprimée en secondes depuis le 1er janvier 1970 (l'epoch), en temps UTC. Elle retourne un pointeur vers une structure tm représentant cette heure en temps local, en tenant compte des fuseaux horaires et de l'heure d'été, le cas échéant.
- Structure de retour tm : La structure tm, retournée par localtime(), contient des champs tels que l'année, le mois, le jour, l'heure, la minute, la seconde, et d'autres informations comme le jour de la semaine ou le jour de l'année. Cette structure facilite la manipulation et l'affichage des dates et heures locales sous une forme décomposée et lisible.
- Effet de l'environnement système : Le fonctionnement de localtime() dépend de la configuration de l'environnement système, notamment des variables d'environnement comme TZ (Time Zone). Si cette variable est modifiée, les résultats de la fonction changent en conséquence. Cela permet d'adapter l'heure locale à différents fuseaux horaires sans modifier le système global.
- Pointeur vers une structure statique : La fonction localtime() retourne un pointeur vers une structure statique interne. Cela signifie que les données de cette structure peuvent être écrasées par un appel ultérieur à une autre fonction similaire, comme gmtime(). Si vous avez besoin de conserver les données, il est conseillé de copier la structure dans une autre variable avant d'effectuer un nouvel appel.
- Gestion des erreurs : Si l'entrée donnée à localtime() est invalide (par exemple, un pointeur NULL ou une valeur hors des limites pour time_t), la fonction retourne NULL. Il est donc essentiel de vérifier le résultat de la fonction pour éviter des erreurs d'exécution lors de l'accès aux données de la structure retournée.
- Compatibilité et inclusion : localtime() est définie dans la bibliothèque standard <time.h> et est disponible sur toutes les plateformes conformes à la norme C. Cette portabilité la rend pratique pour les applications nécessitant une gestion de l'heure sur différents systèmes.
- Applications courantes : La fonction localtime() est souvent utilisée dans des applications où l'heure locale doit être affichée ou manipulée, comme dans les journaux système (logs), les interfaces utilisateur affichant l'heure locale, ou les systèmes de planification d'événements. Elle est également utile pour convertir les horodatages système en heures lisibles par l'utilisateur.
- Impact des changements d'heure (DST) : localtime() prend en compte automatiquement les changements d'heure dus à l'heure d'été (DST) si le fuseau horaire système est configuré pour cela. Par exemple, lors du passage à l'heure d'été, l'heure locale retournée sera ajustée d'une heure. Cela permet d'obtenir des résultats précis sans que l'utilisateur ait à gérer manuellement ces ajustements.
Exemple
Voici un exemple montrant comment afficher la date courante :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
-
- int main()
- {
- time_t seconds = time(NULL);
- struct tm * timeinfo = localtime(&seconds);
- printf("%04d-%02d-%02d %02d:%02d:%02d\n",1900+timeinfo->tm_year,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
- return 0;
- }
on obtiendra le résultat suivant si l'heure courante est 8:24 du matin le 27 janvier 2009 :
2009-01-27 08:24:00Voir également
Langage de programmation - C - Référence de procédures et fonctions - asctime
Langage de programmation - C - Référence de procédures et fonctions - ctime
Langage de programmation - C - Référence de procédures et fonctions - gmtime
Langage de programmation - C - Référence de procédures et fonctions - time
Langage de programmation - C++ - Référence de procédures et fonctions - localtime
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 160.