108 votes

Comment obtenir les valeurs de date et d'heure dans un programme C ?

J'ai quelque chose comme ceci:

char *current_day, *current_time;
system("date +%F");
system("date +%T");

Il imprime le jour et l'heure actuels dans le stdout, mais je veux obtenir cette sortie ou les affecter aux variables current_day et current_time, afin de pouvoir effectuer un traitement avec ces valeurs plus tard.

current_day ==> jour actuel
current_time ==> heure actuelle

La seule solution à laquelle je peux penser maintenant est de rediriger la sortie vers un fichier, puis de lire le fichier et ensuite d'assigner les valeurs de la date et de l'heure à current_day et current_time. Mais je pense que ce n'est pas une bonne façon de faire. Y a-t-il un autre moyen court et élégant?

0voto

r3t40 Points 149

Une seule ligne pour obtenir des informations sur l'heure locale: struct tm *tinfo = localtime(&(time_t){time(NULL)});

0voto

Fadhili Njagi Points 21
#include 

int main() {
    char *pts; /* pointeur vers la chaîne de temps */
    time_t now; /* l'heure actuelle */
    char *ctime();
    (void) time(&now);
    printf("%s", ctime(&now));

   return(0);
}

Résultat d'exemple:

Sat May 14 19:24:54 2022

C'est la manière la plus simple. Je n'ai même pas utilisé time.h.

Veuillez noter: La sortie produite a une nouvelle ligne à la fin.

-3voto

#inclure
utilisation de l'espace de noms std;

int principal()
{
printf("%s",__DATE__);
printf("%s",__TIME__);

retourner 0;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X