ASCTIME |
Heure ASCII |
---|---|
Langage C | time.h |
Syntaxe
char *asctime(struct tm *h) |
Paramètres
Nom | Description | |||
---|---|---|---|---|
h | Ce paramètre permet d'indiquer la structure contenant les informations de temps à traiter : | |||
Nom | Type de données | Description | ||
tm_sec | int | Ce champ permet d'indiquer les secondes, soit une valeur entre l'intervalle 0 et 61. | ||
tm_min | int | Ce champ permet d'indiquer les minutes, soit une valeur entre l'intervalle 0 et 59. | ||
tm_hour | int | Ce champ permet d'indiquer les heures, soit une valeur entre l'intervalle 0 et 23. | ||
tm_mday | int | Ce champ permet d'indiquer le jour du mois, soit une valeur entre l'intervalle 1 et 31. | ||
tm_mon | int | Ce champ permet d'indiquer le mois de l'année : | ||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer le mois de Janvier. | |||
1 | Cette valeur permet d'indiquer le mois de Février. | |||
2 | Cette valeur permet d'indiquer le mois de Mars. | |||
3 | Cette valeur permet d'indiquer le mois d'Avril. | |||
4 | Cette valeur permet d'indiquer le mois de Mai. | |||
5 | Cette valeur permet d'indiquer le mois de Juin. | |||
6 | Cette valeur permet d'indiquer le mois de Juillet. | |||
7 | Cette valeur permet d'indiquer le mois d'Août. | |||
8 | Cette valeur permet d'indiquer le mois de Septembre. | |||
9 | Cette valeur permet d'indiquer le mois d'Octobre. | |||
10 | Cette valeur permet d'indiquer le mois de Novembre. | |||
11 | Cette valeur permet d'indiquer le mois de Décembre. | |||
tm_year | int | Ce champ permet d'indiquer l'année après 1900. | ||
tm_wday | int | Ce champ permet d'indiquer le jour de la semaine : | ||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer le Dimanche. | |||
1 | Cette valeur permet d'indiquer le Lundi. | |||
2 | Cette valeur permet d'indiquer le Mardi. | |||
3 | Cette valeur permet d'indiquer le Mercredi. | |||
4 | Cette valeur permet d'indiquer le Jeudi. | |||
5 | Cette valeur permet d'indiquer le Vendredi. | |||
6 | Cette valeur permet d'indiquer le Samedi. | |||
tm_yday | int | Ce champ permet d'indiquer le jour de l'année, soit une valeur entre l'intervalle 0 et 365. | ||
tm_isdst | int | Ce champ permet d'indiquer le jour d'été ou avancé. |
Retour
Valeur | Description | |
---|---|---|
chaine de caractères | Ces valeurs permettent d'indiquer un format d'heure lisible par humain de format «Www Mmm dd hh:mm:ss yyyy». Voici la signification des abréviations : | |
Abréviation | Description | |
Www | Cette abréviation permet d'indiquer les 3 premières du jour de semaine en anglais. | |
Mmm | Cette abréviation permet d'indiquer les 3 premières lettres du mois en anglais. | |
dd | Cette abréviation permet d'indiquer le jour du mois. | |
hh | Cette abréviation permet d'indiquer l'heure de la journée. | |
mm | Cette abréviation permet d'indiquer les minutes de l'heure. | |
ss | Cette abréviation permet d'indiquer les secondes d'une minute d'une heure. | |
yyy | Cette abréviation permet d'indiquer l'année. |
Description
Cette fonction permet de convertir l'heure en chaîne de caractères.
Algorithme
* Entrée : Structure tm avec les champs tm_sec, tm_min, tm_hour, tm_mday, tm_mon, tm_year, tm_wday * Sortie : Chaîne de caractères représentant la date et l'heure au format "Www Mmm dd hh:mm:ss yyyy\n" MODULE ASCTIME(tm) * Tableaux pour les noms des jours et des mois jours_semaine ← ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] mois_annee ← ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] * Créer une chaîne de caractères de sortie pour entreposer le résultat chaîne_sortie ← chaîne vide de longueur suffisante (au moins 26 caractères) * Construire la chaîne de caractères avec le format spécifié chaîne_sortie ← sprintf("%s %s %02d %02d:%02d:%02d %d\n",jours_semaine[tm.tm_wday],mois_annee[tm.tm_mon],tm.tm_mday,tm.tm_hour,tm.tm_min,tm.tm_sec,tm.tm_year + 1900) * Retourner la chaîne de caractères de sortie RETOURNE chaîne_sortie |
Remarques
- Il faut prévoir au moins 26 caractères dans la chaîne de caractères de tampon recevant les données, et le format retourner sera de style «Www Mmm dd hh:mm:ss yyyy».
- Cette fonction modifie une mémoire tampon interne partagé pouvant provoquer des problèmes de corruption du données dans le cas d'appels simultanés à «asctime» ou «ctime». Ainsi, pour contourner le problème, certains compilateurs offrent une fonction alternative du nom de «asctime_r» (C pour Linux,...) pour contourner le problème.
- Si vous souhaitez personnalisé le format de sortie en fonction des régions ou des langues, vous devriez plutôt utiliser la fonction «strftime» si elle est reconnu par la bibliothèque de votre compilateur C.
Exemple
Voici un exemple montrant le résultat d'une date du 1er janvier 1970 :
Essayer maintenant !
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
-
- int main()
- {
- struct tm timeinfo;
- timeinfo.tm_sec = 59;
- timeinfo.tm_min = 59;
- timeinfo.tm_hour = 23;
- timeinfo.tm_mday = 1;
- timeinfo.tm_mon = 1;
- timeinfo.tm_year = 70;
- timeinfo.tm_wday = 0;
- timeinfo.tm_yday = 0;
- timeinfo.tm_isdst = 0;
- printf("La date et l'heure : %s\n",asctime(&timeinfo));
- return 0;
- }
on obtiendra le résultat suivant :
La date et l'heure : Sun Feb 01 23:59:59 1970Voir également
Langage de programmation - C - Référence procédures et fonctions - difftime
Langage de programmation - C - Référence procédures et fonctions - localtime
Langage de programmation - C - Référence procédures et fonctions - mktime
Langage de programmation - C - Référence procédures et fonctions - time
Langage de programmation - C++ - Référence procédures et fonctions - asctime
Langage de programmation - C pour Linux - Référence procédures et fonctions - asctime
Langage de programmation - Perl - Référence des modules - POSIX::ASCTIME
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 30.