Date et heure en C

Résolu
JDs -  
 JDs -
Bonjour, j'aimerais bien pouvoir utiliser time.h pour pouvoir avoir ceci par exemple : 30-04-2008 20:38

Est ce que c'est possible

merci de vos réponses

3 réponses

  1. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    strftime(....) et strptime(....) utiliser avec time(NULL)
    0
    1. JDs
       
      Ok, mais j'ai quand même encore du mal à voir, comment je dois lui dire que je veux jj-mm-aaaa sans avoir le jour.

      j'ai une variable que j'ai déclarer comme ceci

      time_t t; puis ensuite je fais

      time(&t);

      ...

      Je sais pas trop comment m'expliquer c'est un peu nouveau pour moi

      fin soit merci de ta réponse rapide
      0
  2. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    si tu fais un time(NULL), tu récupères le timestamp actuel, donc ensuite avec strftime, tu formates la sortie comme tu l'entend.

    Un exemple :
    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int
    main(int argc, char *argv[])
    {
        char outstr[200];
        time_t t;
        struct tm *tmp;
         tmp = localtime(&t);
         if (tmp == NULL) {
             perror("localtime");
             exit(EXIT_FAILURE);
         }
    
         if (strftime(outstr, sizeof(outstr), argv[1], tmp) == 0) {
             fprintf(stderr, "strftime a renvoyé 0");
             exit(EXIT_FAILURE);
         }
    
         printf("La chaîne résultat est \"%s\"\n", outstr);
         exit(EXIT_SUCCESS);
     } 
    
    0
    1. JDs
       
      Voici une partie de mon code

       
      
          char date[100];
          time_t t;
      
          time(&t); 
          
         strftime(date, sizeof(date), "%#d-%#m-%yyyy", t) ;
      
      


      Si j'ai bien compris il prend t et le met au format du troisième paramètre et ensuite le met dans ma variable date ??
      0
  3. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    time_t = int ou un long en interne alors que strftime prends un struct tm donc tu dois passer par localtime ou gmttime pour avoir la struct tm et ensuite formater par strftime
    strftime converti en struct tm en une chaine formaté selon tes besoins et la stocke dans son premier paramètre, dans ton cas date.
    Je pense que ton format doit plutôt être "%d-%m-%Y"
    0
    1. JDs
       
      C'est bien ça un grand merci ... Je met mon code pour rappel

      char date[100];
       time_t t;
       struct tm *tmp;
       tmp = localtime(&t);
      
       strftime(date, sizeof(date), "%d-%m-%Y", tmp) ;
      


      Merci Encore ... :D
      0