Guide complet sur la date et l'heure en C++
La bibliothèque standard C++ ne fournit pas de type de date approprié. C++ hérite des structures et fonctions pour la manipulation de date et d'heure du C. Pour accéder aux fonctions et structures liées à la date et l'heure, vous devrez inclure le fichier d'en-tête <ctime> dans votre programme C++.
Il y a quatre types liés au temps : clock_t, time_t, size_t et tm. Les types clock_t, size_t et time_t sont capables de représenter l'heure et la date du système comme une sorte d'entier.
Le type structure tm contient la date et l'heure sous la forme d'une structure C ayant les éléments suivants :
struct tm {
int tm_sec; // secondes des minutes de 0 à 61
int tm_min; // minutes de l'heure de 0 à 59
int tm_hour; // heures du jour de 0 à 24
int tm_mday; // jour du mois de 1 à 31
int tm_mon; // mois de l'année de 0 à 11
int tm_year; // années depuis 1900
int tm_wday; // jours depuis dimanche
int tm_yday; // jours depuis le 1er janvier
int tm_isdst; // heures d'heure d'été
}
Voici les fonctions importantes que nous utilisons en travaillant avec la date et l'heure en C ou C++. Toutes ces font partie de la bibliothèque standard C et C++ et vous pouvez vérifier leurs détails en utilisant la référence à la bibliothèque standard C++ donnée ci-dessous.
| N° | Fonction et but |
|---|---|
| 1 | time_t time(time_t *time); Retourne l'heure calendaire courante du système en nombre de secondes écoulées depuis le 1er janvier 1970. Si le système n'a pas d'heure, .1 est retourné. |
| 2 | char *ctime(const time_t *time); Retourne un pointeur vers une chaîne de la forme jour mois année heures:minutes:secondes année\n\0. |
| 3 | struct tm *localtime(const time_t *time); Retourne un pointeur vers la structure tm représentant l'heure locale. |
| 4 | clock_t clock(void); Retourne une valeur approximant le temps d'exécution du programme appelant. Une valeur de .1 est retournée si le temps n'est pas disponible. |
| 5 | char *asctime(const struct tm *time); Retourne un pointeur vers une chaîne contenant les informations stockées dans la structure pointée par time converties sous la forme : jour mois date heures:minutes:secondes année\n\0 |
| 6 | struct tm *gmtime(const time_t *time); Retourne un pointeur vers l'heure sous forme de structure tm. L'heure est représentée en Temps Universel Coordonné (UTC), qui est essentiellement le Temps Moyen de Greenwich (GMT). |
| 7 | time_t mktime(struct tm *time); Retourne l'équivalent temps calendaire de l'heure trouvée dans la structure pointée par time. |
| 8 | double difftime(time_t time2, time_t time1); Calcule la différence en secondes entre time1 et time2. |
| 9 | size_t strftime(); Cette fonction peut être utilisée pour formater la date et l'heure dans un format spécifique. |
Date et heure actuelles
Supposons que vous vouliez récupérer la date et l'heure système actuelles, soit comme heure locale, soit comme Temps Universel Coordonné (UTC). Voici l'exemple pour y parvenir :
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// date/heure actuelle basée sur l'heure système courante
time_t now = time(0);
// convertir now en forme chaîne
char* dt = ctime(&now);
cout << "La date et l'heure locale est : " << dt << endl;
// convertir now en structure tm pour UTC
tm *gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "La date et l'heure UTC est : " << dt << endl;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
La date et l'heure locale est : Sat Jan 8 20:07:41 2011 La date et l'heure UTC est : Sun Jan 9 03:07:41 2011
Formater l'heure en utilisant la structure tm
La structure tm est très importante lors du travail avec la date et l'heure en C ou C++. Cette structure contient la date et l'heure sous la forme d'une structure C comme mentionné ci-dessus. La plupart des fonctions liées au temps font usage de la structure tm. Voici un exemple qui utilise diverses fonctions liées à la date et l'heure et la structure tm :
En utilisant la structure dans ce chapitre, je suppose que vous avez une compréhension de base sur la structure C et comment accéder aux membres de structure en utilisant l'opérateur flèche ->.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// date/heure actuelle basée sur l'heure système courante
time_t now = time(0);
cout << "Nombre de secondes depuis le 1er janvier 1970 : " << now << endl;
tm *ltm = localtime(&now);
// afficher divers 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 : " << 5 + ltm->tm_hour << ":";
cout << 30 + ltm->tm_min << ":";
cout << ltm->tm_sec << endl;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :
Nombre de secondes depuis le 1er janvier 1970 : 1588485717 Année : 2020 Mois : 5 Jour : 3 Heure : 11:31:57
Langue C
- Calcul de la tension et du courant dans les circuits CC réactifs
- Maîtriser les variables, littéraux et constantes en C++ : Guide complet
- Classes et objets C++ : Guide pratique de la programmation orientée objet
- Maîtriser la gestion de mémoire en C++ : Utilisation experte de new et delete
- Maîtriser l'héritage C++ : Public, Protected et Private expliqués
- Fonctions amies et classes amies en C++ : Maîtriser le contrôle d'accès
- Récupérer la date et l'heure actuelles en Python : Guide pratique
- Structures C++ vs Classes : guide pratique pour développeurs embarqués
- Maîtriser la surcharge en C++ : Fonctions et opérateurs expliqués