[ C ] Formater une date

Formater une date [ C ] - C++ - Programmation

Marsh Posté le 20-11-2002 à 23:53:32    

Bonjour je suis totalement debutant en C
J'ai besoin de formater une date pour nommer un fichier, du genre:
11201530.DAT  (fichier cree le 20 novembre a 15h30)
 
Pour cela j'ai pense utiliser la fonction localtime() et ensuite concatener les resultats de la structure "struct tm" a l'aide de la  fonction strcat()
 
pour le moment ma brouette resemble a ca:
_________________________________________________________________
#include <time.h>
#include <string.h>  
#include <stdio.h>  
 
main()  
{  
 time_t t;
 struct tm *tb;  
 
 char *month;
 char *day;
        char *hour;
        char *minute;  
 char destination[125];  
 
 FILE *fp;
 
 t = time(NULL);
 tb = localtime(&t);
 
//a partir d'ici j'ai un reel probleme pour mettre les "tb->tm_mon" dans destination
 
 strcpy(destination, ???);  //probleme
 strcat(destination, ???);  //probleme
 strcat(destination, ???);  //probleme
 strcat(destination, ???);  //probleme
 
        if ((fp = fopen("$destination.DAT", "a" )) == 0) //problem
 {        
  cprintf("Couldn't open current.DAT file!\n" );  
 }         fclose(fp);
_________________________________________________________________
 
Si qq'un comprend mon probleme ce serait vraiement sympa parce que le C me donne pas mal de fil a retordre et en plus j'ai qu'un bouquin en anglais!
 
Merci d'avance,
 
Fred

Reply

Marsh Posté le 20-11-2002 à 23:53:32   

Reply

Marsh Posté le 21-11-2002 à 00:11:16    

Tu pourras faire ce que tu veux facilement avec snprintf

Reply

Marsh Posté le 21-11-2002 à 01:14:22    

En fait j'ai trouve mon bonheur avec strftime()
_________________________________________________________________
#include <stdio.h>  
#include <time.h>  
#include <locale.h>  
 
main()  
{  
 char ch[80+1];  
 struct tm * pdh;  
 time_t intps;  
   
 intps = time(NULL);  
 pdh = localtime(&intps);  
 strftime( ch, 81, "%m%d%H%M", pdh);  
 printf("%s\n", ch);  
}
_________________________________________________________________
 
Le probleme maintenant c'est que j'ai teste ca sur x86 mais je doit faire tourner le tout sur un Motorola MC68CK338
et ce tas de feraille ne marche pas...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed