Probleme de dates

Résolu
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006 - 17 nov. 2004 à 15:45
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006 - 18 nov. 2004 à 11:52
Voilà je dois transformer une date sous cette forme :

20041116130000
année/mois/jour/heure/secondes

Pour la transformer en nombre de secondes ecoulées depuis le 1er janvier 1970.

Je suis debutant , et j'utilise beaucoup de variables.

Merci pour toutes aides.

6 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 nov. 2004 à 20:20
non, le format de date dans le fichier est correcte, ca pause pas de probleme pour le parser

pour calculer la différence entre les deux temps, tu as difftime (time.h)

"Une structure peut servir pour plusieurs dates?"

comme n'importe quel type, tu peux instancier autant de variable avec, tu peux meme faire des affectations sans probleme (=) vu qu'il n'ya pas d'aggregation par pointeur
3
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 nov. 2004 à 16:03
mktime le fais

http://www.cplusplus.com/ref/ctime/mktime.html

il faurt juste convertir ton "20041116130000" en struct tm
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
17 nov. 2004 à 16:47
Merci pour le lien.

Quand tu dis "il faurt juste convertir ton "20041116130000" en struct tm " , tu veux dire manuellement ?

Là je suis perdu?
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 nov. 2004 à 17:20
à vérifier :

#include <stdio.h>
#include <time.h>

int main()
{
const char *date = "20041116130000";
struct tm s;

/* parsing de la chaine date */
sscanf( date, "%4d%2d%2d%2d%2d%2d",
&s.tm_year,
&s.tm_mon,
&s.tm_mday,
&s.tm_hour,
&s.tm_min,
&s.tm_sec );

/* je suis pas sur */
s.tm_year -= 1900;
s.tm_mon--;

/* affichage des champs attribués */
printf( "%d %d %d %d %d %d\n",
s.tm_year,
s.tm_mon,
s.tm_mday,
s.tm_hour,
s.tm_min,
s.tm_sec );

/* appel mktime */
printf( "%ld\n", mktime(&s) );

return 0;
}

définition de struct tm

http://www.cplusplus.com/ref/ctime/tm.html
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
17 nov. 2004 à 18:49
Voilà en faite je vais t'expliquer mon probleme :

j'ai des dates dans un fichier et des phrases :

20041116130000 20041116132000
bonjour
20041116134000 20041116136000
aurevoir

Si le temps actuel se trouve entre le premier nombre et le 2eme
, la fonction me retourne la prochaine ligne .

Vaut ' il mieux changer le format des dates dans le fichier ou mettre dans le meme format le temps actuel pour faire les comparaisons?

Une structure peut servir pour plusieurs dates?

Merci de ton aide .
0
cs_zame Messages postés 85 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 20 février 2006
18 nov. 2004 à 11:52
Merci , tres efficace comme reponse.
0
Rejoignez-nous