Programmation en C++ – Date et Heure

La bibliothèque standard C ++ ne fournit pas un type de date approprié. C ++ hérite des structures et des fonctions pour la manipulation de date et d’heure à partir de C. Pour accéder aux fonctions et aux structures liées à la date et à l’heure, vous devez inclure un fichier d’en-tête <ctime> dans votre programme C ++.

Il existe quatre types de 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 de structure tm tient la date et l’heure sous la forme d’une structure en C ayant les éléments suivants:

Struct tm {
    tm_sec int; // secondes de 0 à 61
    int tm_min; // minutes de 0 à 59
    int tm_hour; // heures de 0 à 24
    int tm_mday; // jour 1 à 31
    int tm_mon; // mois de 0 à 11
    int tm_year; // année depuis 1900
    int tm_wday; // jours depuis dimanche
    int tm_yday; // jours depuis le 1er janvier
    int tm_isdst; // heure d'été
}

Voici les fonctions importantes que nous utilisons en travaillant avec la date et l’heure en C ou C ++. Toutes ces fonctions font partie de la bibliothèque standard C et C ++ et vous pouvez vérifier leurs détails en utilisant la bibliothèque standard C ++ ci-dessous.

time_t time (time_t * time);
Cela retourne l’heure du calendrier du système en nombre de secondes écoulées depuis le 1er janvier 1970. Si le système n’a pas de temps, .1 est renvoyé.

char * ctime (const time_t * time);
Cela retourne un pointeur vers une chaîne de la forme jour mois année heures: minutes: secondes annéen.

struct tm * localtime (const time_t * time);
Cela retourne un pointeur vers la structure tm représentant l’heure locale.

clock_t clock (void);
Cela retourne une valeur qui se rapproche du temps d’exécution du programme appelant. Une valeur de .1 est renvoyée si l’heure n’est pas disponible.

char * asctime (const struct tm * time);
Cela renvoie un pointeur vers une chaîne qui contient les informations stockées dans la structure pointée par le temps converti dans la forme : jour mois date heures: minutes: secondes annéen

struct tm * gmtime (const time_t * time);
Cela renvoie un pointeur à l’heure sous la forme d’une structure tm. Le temps est représenté en temps universel coordonné (UTC), qui est essentiellement le temps moyen de Greenwich (GMT).

time_t mktime (struct tm * time);
Renvoie la valeur du type time_t qui représente l’heure locale décrite par la structure tm pointé par timeptr (qui peut être modifiée).

double difftime (time_t time2, time_t time1);
Cette fonction calcule la différence en secondes entre time1 et time2.

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:

Considérez que vous souhaitez récupérer la date et l’heure actuelles du système, soit en tant que « heure locale », soit en « temps universel coordonné (UTC) ». Voici l’exemple pour obtenir le même:

#include <iostream>
#include <ctime>

using namespace std;

int main( ) {
   // date / heure actuelle basée sur le système actuel
   time_t tmm = time(0);
   
   // convertir en forme de chaîne
   char* dt = ctime(&tmm);

   cout << "La date et l'heure locales sont: " << dt << endl;

   // convertir en tm struct pour UTC
   tm *g = gmtime(&tmm);
   dt = asctime(g);
   cout << "La date et l'heure UTC sont:"<< dt << endl;
}

La sortie :

La date et l'heure locales sont: Fri Feb 24 15:59:12 2015
La date et l'heure UTC sont:Fri Feb 24 20:59:12 2015

 
 

Format de temps à l’aide de struct tm

La structure tm est très importante tout en travaillant avec la date et l’heure en C ou C ++. Cette structure tient la date et l’heure sous la forme d’une structure C comme mentionné ci-dessus. La plupart des fonctions liées au temps fait usage de la structure tm. Voici un exemple qui utilise diverses fonctions liées à la date et à l’heure :

Tout en utilisant la structure dans ce chapitre, nous pensons que vous avez une compréhension de base sur la structure C et la façon d’accéder aux membres de la structure en utilisant l’opérateur ->.

#include <iostream>
#include <ctime>

using namespace std;

int main( ) {
   // date / heure actuelle basée sur le système actuel
   time_t actuel = time(0);

   cout << "Nombre de sec depuis Janvier 1,1970:" << actuel << endl;

   tm *ltm = localtime(&actuel);

   // afficher divers member de la structure tm.
   cout << "Année" << 1900 + ltm->tm_year<<endl;
   cout << "Mois: "<< 1 + ltm->tm_mon<< endl;
   cout << "Day: "<<  ltm->tm_mday << endl;
   cout << "Jour: "<< 1 + ltm->tm_hour << " : ";
   cout << 1 + ltm->tm_min << ":";
   cout << 1 + ltm->tm_sec << endl;
}

La sortie :

Nombre de sec depuis Janvier 1,1970:1487970312
Année2017
Mois: 2
Day: 24
Jour: 17 : 6:13

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.