C++ Date & heure

La bibliothèque standard C++ ne fournit pas de type de date à proprement parler. C++ hérite des structures et fonctions du langage C pour les opérations de date et d'heure. Pour utiliser les fonctions et structures liées à la date et à l'heure, vous devez inclure le fichier d'en-tête <ctime> dans un programme C++.

Il existe quatre types liés au temps :clock_t, time_t, size_tettmLes types clock_t, size_t et time_t peuvent représenter la date et l'heure système sous la forme d'un entier quelconque.

type de structuretmLa date et l'heure sont stockées sous la forme d'une structure C. La structure tm est définie comme suit :

struct tm { int tm_sec; // Secondes, plage normale de 0 à 59, mais autorisées jusqu'à 61 int tm_min; // Minutes, plage de 0 à 59 int tm_hour; // Heures, plage de 0 à 23 int tm_mday; // Jour du mois, plage de 1 à 31 int tm_mon; // Mois, plage de 0 à 11 int tm_year; // Années depuis 1900 int tm_wday; // Jour de la semaine, plage de 0 à 6, en commençant par dimanche int tm_yday; // Jour de l'année, plage de 0 à 365, en commençant par le 1er janvier int tm_isdst; // Heure d'été };

Ci-dessous se trouvent les fonctions importantes liées à la date et à l'heure en C/C++. Toutes ces fonctions font partie de la bibliothèque standard C/C++. Vous pouvez consulter les détails de chaque fonction dans la bibliothèque standard C++.

Numéro de sérieFonctions et description
1time_t time(time_t *time);
Cette fonction renvoie l'heure calendaire actuelle du système, qui est le nombre de secondes écoulées depuis le 1er janvier 1970. Si le système n'a pas d'heure, elle renvoie -1.
2char *ctime(const time_t *time);
Cette fonction renvoie un pointeur vers une chaîne dont le contenu représente l'heure locale, au format :
Www Mmm dd hh:mm:ss yyyy\n\0

Où :

  • Www: jour de la semaine (par ex., mar.)
  • Mmm: mois (par ex., juil.)
  • dd: jour (par ex. 29)
  • hh:mm:ss: Heure (format 24 heures)
  • yyyy: année (par ex., 2025)
  • Se termine par un caractère de nouvelle ligne\net terminateur\0

Exemple de valeur de retour :

"Tue Jul 29 19:12:15 2025\n\0"
3struct tm *localtime(const time_t *time);
Cette fonction renvoie un pointeur vers une structure représentant l'heure locale.tmPointeur vers la structure.
4clock_t clock(void);
Cette fonction renvoie le temps processeur utilisé depuis le début de l'exécution du programme (généralement le début du programme). Si l'heure n'est pas disponible, elle renvoie -1.
5char * asctime ( const struct tm * time );
Cette fonction renvoie un pointeur vers une chaîne. La chaîne contient les informations stockées dans la structure pointée par time. Le format de retour est : jour mois date heures:minutes:secondes année\n\0.
6struct tm *gmtime(const time_t *time);
Cette fonction renvoie un pointeur vers time, où time est une structure tm, exprimée en temps universel coordonné (UTC), également appelé temps moyen de Greenwich (GMT).
7time_t mktime(struct tm *time);
Cette fonction renvoie le temps calendaire, qui est équivalent au temps stocké dans la structure pointée par time.
8double difftime ( time_t time2, time_t time1 );
Cette fonction renvoie la différence en secondes entre time1 et time2.
9size_t strftime();
Cette fonction peut être utilisée pour formater des dates et des heures dans un format spécifié.

Date et heure actuelles

L'exemple suivant obtient la date et l'heure actuelles du système, y compris l'heure locale et le temps universel coordonné (UTC).

Exemple

#include <iostream> #include <ctime> using namespace std; int main( ) { // Date/heure actuelle basée sur le système actuel time_t now = time(0); // Convertir now en chaîne de caractères char* dt = ctime(&now); cout << "Date et heure locales :" << dt << endl; // Convertir now en structure tm tm *gmtm = gmtime(&now); dt = asctime(gmtm); cout << "Date et heure UTC :"<< dt << endl; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

本地日期和时间:Sat Jan  8 20:07:41 2011

UTC 日期和时间:Sun Jan  9 03:07:41 2011

Formatage de l'heure à l'aide de la structure tm

tmLa structure est particulièrement importante lors de la gestion des opérations liées à la date et à l'heure en C/C++. La structure tm conserve la date et l'heure sous la forme d'une structure C. La plupart des fonctions liées au temps utilisent la structure tm. L'exemple ci-dessous utilise la structure tm et diverses fonctions liées à la date et à l'heure.

Avant de pratiquer l'utilisation des structures, vous devez avoir une compréhension de base des structures C et savoir utiliser l'opérateur flèche -> pour accéder aux membres d'une structure.

Exemple

#include <iostream> #include <ctime> using namespace std; int main( ) { // Date/heure actuelle basée sur le système actuel time_t now = time(0); cout << "Secondes écoulées depuis 1970 :" << now << endl; tm *ltm = localtime(&now); // Afficher les composants de la structure tm cout << "Année :"<< 1900 + ltm->tm_year << endl; cout << "Mois :"<< 1 + ltm->tm_mon<< endl; cout << "Jour :"<< ltm->tm_mday << endl; cout << "Heure :"<< ltm->tm_hour << ":"; cout << ltm->tm_min << ":"; cout << ltm->tm_sec << endl; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

1970 到目前时间:1503564157
年: 2017
月: 8
日: 24
时间: 16:42:37
autres extensions