Bibliothèque Date en C
Fermé
rafale69300
Messages postés
84
Date d'inscription
vendredi 31 octobre 2008
Statut
Membre
Dernière intervention
15 juin 2010
-
24 mars 2009 à 17:37
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 24 mars 2009 à 20:23
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 24 mars 2009 à 20:23
2 réponses
rafale69300
Messages postés
84
Date d'inscription
vendredi 31 octobre 2008
Statut
Membre
Dernière intervention
15 juin 2010
2
24 mars 2009 à 19:50
24 mars 2009 à 19:50
Snif j'ai pas d'aide...
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
24 mars 2009 à 20:23
24 mars 2009 à 20:23
En fait tu t'es un peu cassé la tête pour rien, tu aurais dû utiliser directement un timestamp.
http://fr.wikipedia.org/wiki/Timestamp_(informatique)
En d'autres termes, une date est simplement stockée sous forme d'un entier qui donne le nombre de seconde écoulées depuis une date origine (le plus souvent le 1er janvier 1970 à minuit). Rien ne t'empêche de faire un timestamp basé sur des jours si tu veux couvrir une plage de temps plus importante. Toutefois avec un timestamp en seconde et basé sur le 1er janvier 1970, il existe plein de fonctions pour remettre en forme facilement une date dans la librairie standard. Voir par exemple :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/time.2.html
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/ctime.3.html
Revenons à ta librairie. Si on reste sur ta structure, la manière la plus simple de t'en sortir est de repasser par un "struct tm" (voir second lien), de les convertir en time_t (avec la fonction mktime), de faire la différence. Ensuite une division entière par 60*60*24 te donnera le nombre de jour écoulés entre les deux dates.
Si tu ne passes pas par un timestamp, tu vas galérer avec les années bissextiles, etc...
Bonne chance
http://fr.wikipedia.org/wiki/Timestamp_(informatique)
En d'autres termes, une date est simplement stockée sous forme d'un entier qui donne le nombre de seconde écoulées depuis une date origine (le plus souvent le 1er janvier 1970 à minuit). Rien ne t'empêche de faire un timestamp basé sur des jours si tu veux couvrir une plage de temps plus importante. Toutefois avec un timestamp en seconde et basé sur le 1er janvier 1970, il existe plein de fonctions pour remettre en forme facilement une date dans la librairie standard. Voir par exemple :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/time.2.html
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/ctime.3.html
Revenons à ta librairie. Si on reste sur ta structure, la manière la plus simple de t'en sortir est de repasser par un "struct tm" (voir second lien), de les convertir en time_t (avec la fonction mktime), de faire la différence. Ensuite une division entière par 60*60*24 te donnera le nombre de jour écoulés entre les deux dates.
Si tu ne passes pas par un timestamp, tu vas galérer avec les années bissextiles, etc...
Bonne chance