©
D. Mathieu
mathieu@romarin.univ-aix.fr
I.U.T.d'Aix en Provence - Département Informatique
Créé le 12/02/2001 -
Dernière mise à jour : 12/11/2001
Nous ne décrirons ici que les fonctions standard C, qui peuvent aussi être utilisées en C++.
Les dates existent sous trois formes différentes :
struct tm
{ int tm_sec; /* Nombre de secondes */ int tm_min; /* Nombre de minutes */ int tm_hour; /* Nombre d'heures */ int tm_mday; /* Numéro du jour */ int tm_mon; /* Nombre de mois */ int tm_year; /* Nombre d'années */ int tm_wday; /* Numéro du jour de la semaine */ int tm_yday; /* Numéro du jour de l'année */ int tm_isdst; /* horaire d'été */ }; |
dans laquelle les données membres ont la signification suivante :
tm_sec | Nombre de secondes écoulées depuis le début de la minute courante. En principe entre 0 et 59, mais peut atteindre 61 pour permettre un rattrappage périodique de secondes. |
tm_min | Nombre de minutes écoulées depuis le début de l'heure courante : [0..59] |
tm_hour | Nombre d'heures écoulées depuis le début du jour courant : [0..23] |
tm_mday | Numéro du jour dans le mois : [1..31] |
tm_mon | Nombre de mois écoulés depuis le début de l'année courante : [0..11] |
tm_year | Nombre d'années écoulées depuis le début de la période de référence |
tm_wday | Nombre de jours écoulés depuis le dernier dimanche (Sunday) : [0..6] |
tm_yday | Nombre de jours écoulés depuis le 1er janvier de l'année en cours : [0..365] |
tm_isdst |
Indicateur d'horaire d'été (daylight saving time)
|
char *
asctime (const struct tm *timeptr);
char * ctime (const time_t *timep); struct tm * gmtime (const time_t *timep); struct tm * localtime (const time_t *timep); time_t mktime (struct tm *timeptr); |
Les fonctions localtime() et gmtime() transforment un temps (exprimé en seconde) en une structure qui représente respectivement un temps local (décalage horaire, horaire d'été) ou un temps universel (pas de transformation).
En C++, types spécifiques et fonctions appartiennent à l'espace de noms std et sont accessibles au moyen du fichier inclus <ctime>.
En C, types spécifiques et fonctions sont globales et sont accessibles au moyen du fichier inclus <time.h>.
La séquence suivante :
std::time_t TLocal = std::mktime (std::localtime (&TLocal));
cout << "Date en temps universel : "
|
permet d'afficher le temps local et le temps universel correspondant :
Date en temps universel :
Mon Feb 12 18:41:02 2001
Date en temps local : Mon Feb 12 19:41:02 2001 |
La fonction Estampiller() [2] suivante :
void Estampiller (ostream
& os)
{ std::time_t t = std::time (0); os << "date : " << std::asctime (std::localtime (&t)); } // Estampiller() |
permet d'estampiller tout affichage en temps local, par exemple :
// ...
catch (const CException & Ex) { Estampiller (cerr); cerr << Ex << endl; } |
[2] Une version plus élégante de la fonction Estampiller() est proposée dans l'étude des manipulateurs.
© D. Mathieu
mathieu@romarin.univ-aix.fr
I.U.T.d'Aix en Provence - Département Informatique