CTIME |
Conversion de l'heure |
---|---|
Langage C | time.h |
Syntaxe
char *ctime(const time_h *h) |
Paramètres
Nom | Description |
---|---|
h | Ce paramètre permet d'indiquer l'heure |
Description
Cette fonction permet de convertir une heure sous forme de chaîne de caractères.
Algorithme
MODULE ctime(timep) * Convertir le temps (timep) en une structure tm contenant l'heure locale tm ← localtime(timep) * localtime() convertit time_t en une structure tm * Créer une chaîne de caractères formatée pour afficher la date et l'heure formattedTime ← format("%s %s %d %02d:%02d:%02d %d\n", tm.weekdayName, * Nom du jour de la semaine (par exemple, "Mon") tm.monthName, * Nom du mois (par exemple, "Jan") tm.day, * Jour du mois (1 à 31) tm.hour, * Heure (0 à 23) tm.minute, * Minute (0 à 59) tm.second, * Seconde (0 à 59) tm.year) * Année (année complète) RETOURNE formattedTime |
Remarques
- Prototype et but principal : La fonction ctime prend un pointeur vers une valeur de type time_t et la convertit en une chaîne de caractères lisible, représentant la date et l'heure locales. Le format de la chaîne retournée est : "Jour Mois jj hh:mm yyyy\n", où les éléments sont respectivement le jour de la semaine, le mois, le jour du mois, l'heure, les minutes, les secondes et l'année.
- Paramètre d'entrée : Le paramètre de la fonction ctime est un pointeur vers une valeur de type time_t. Cette valeur représente le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit UTC (l'époque Unix). Le plus souvent, cette valeur est obtenue à partir de la fonction time renvoyant l'heure actuelle sous forme de time_t.
- Format de la chaîne retournée : La chaîne retournée par ctime a un format fixe, et est donc particulièrement simple à comprendre pour l'affichage humain. Cependant, ce format n'est pas flexible et ne permet pas de personnalisation, ce qui peut être un inconvénient si un format différent est nécessaire pour une application particulière.
- Chaîne statique : La fonction ctime renvoie un pointeur vers une chaîne statique allouée à l'intérieur de la fonction. Cela signifie que chaque appel à ctime écrasera la chaîne précédemment retournée. Par conséquent, cette fonction ne permet pas de conserver une valeur pour une utilisation ultérieure sans la copier dans une autre variable.
- Problème de la gestion du fuseau horaire : Le résultat retourné par ctime est basé sur l'heure locale du système, ce qui inclut la prise en compte du fuseau horaire et des règles de l'heure d'été. Cela peut poser problème si un programme doit fonctionner dans un environnement avec des utilisateurs répartis sur différents fuseaux horaires, car la fonction n'offre pas d'option pour spécifier un fuseau horaire particulier.
- Précision limitée : Le format de la chaîne retournée par ctime ne contient aucune information sur les fractions de seconde, ce qui peut être un inconvénient si vous devez travailler avec des horodatages précis. De plus, ctime ne permet pas de gérer des dates avant l'époque Unix ou au-delà de la portée de time_t, étant généralement 2038 pour les systèmes 32 bits.
- Utilisation courante et simplicité : ctime est souvent utilisée pour afficher l'heure actuelle de manière simple et lisible pour les utilisateurs finaux, par exemple dans les journaux de bord, les rapports ou les messages d'état. Elle convient bien pour les applications où l'intervalle de temps n'a pas besoin d'être exprimé de manière précise et où la conversion d'une valeur time_t en une chaîne lisible est suffisante.
- Limitation dans les environnements multi-processus léger : Puisque la chaîne retournée par ctime est statique, elle n'est pas thread-safe. Si plusieurs procsssus léger appellent cette fonction en même temps, les chaînes pourraient être écrasées, ce qui entraîne un comportement imprévisible. Pour une gestion thread-safe des dates et heures, il est préférable d'utiliser d'autres fonctions comme localtime_r ou strftime, permettant d'entreposer le résultat dans une mémoire allouée par l'utilisateur.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
Voici le temps :Thu Jan 01 19:00:00 1970Voir également
Langage de programmation - C - Référence de procédures et fonctions - difftime
Langage de programmation - C - Référence de procédures et fonctions - localtime
Langage de programmation - C - Référence de procédures et fonctions - mktime
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 - ctime
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 63.