Nombre de jours entre 2 dates - C - Programmation
Marsh Posté le 14-05-2006 à 15:27:30
cinezone a écrit : Hello, |
Il n'existe rien à ma connaissance mais l'algo est facile
Tu peux envisager la boucle
TQ (jj < jjfin ou mm < mmfin ou aa < aafin)
FAIRE
jj=jj+1
if (date_incorrect(jj, mm, aa))
{
jj=1;
if (mm < 12)
mm=mm + 1;
else
{
mm=1;
aa=aa + 1;
}
}
FIN FAIRE
Et implémenter "date_incorrect" pour vérifier ta date (bissextile, plus de 31 jours, etc)
Ou bien utiliser la fonction de mktime pour convertir la date de départ et d'arrivée en secondes puis faire nbJour=(secFin - secDeb) / 86400
Marsh Posté le 14-05-2006 à 16:53:50
J'ai utilisé la fonction difftime(today, date) / (24*60*60) et ça fonctionne parfaitement.
Merci quand même pour le temps que tu as passé à me répondre.
Marsh Posté le 14-05-2006 à 18:15:36
cinezone a écrit : J'ai utilisé la fonction difftime(today, date) / (24*60*60) et ça fonctionne parfaitement. |
Ben en fait, difftime() prend comme paramètres des dates en secondes. Si tu les as déjà, c'est ok sinon t'es quand-même obligé de passer par une fonction qui converti une date jj/mm/aa en secondes => mktime().
une fois ces secondes obtenues, soit tu fais
Bon, l'avantage en utilisant difftime(), c'est que c'est portable. Si demain l'implémentation de time_t change, t'auras rien à faire avec difftime()
cinezone a écrit : Merci quand même pour le temps que tu as passé à me répondre. |
NP
Marsh Posté le 14-05-2006 à 22:36:41
cinezone a écrit : J'ai besoin de connaître le nombre de jours écoulés entre 2 dates (plus précisément entre la date du jour et une date fournie). |
difftime()
Marsh Posté le 15-05-2006 à 09:32:52
Emmanuel Delahaye a écrit : difftime() |
Ah ? Vraiment ???
Tu es arrivé pile-poil comme la cavalerie... après la bataille
Marsh Posté le 15-05-2006 à 11:09:27
la bataille n'est pas finie, vous faites comment avec difftime si vos dates ne sont pas entre 1970 et 2038
Marsh Posté le 16-05-2006 à 19:56:58
skelter a écrit : la bataille n'est pas finie, vous faites comment avec difftime si vos dates ne sont pas entre 1970 et 2038 |
Ben mon algo initial fonctionne...
Marsh Posté le 16-05-2006 à 20:48:33
Sve@r a écrit : Ben mon algo initial fonctionne... |
peut etre mais il est peu efficace, le mieux est de convertir directement les 2 dates en jours depuis un temps de reference
c'est pas un probleme si simple que ca, faudrais voir si il n'y a pas une bibliothèque spécialisée
Marsh Posté le 17-05-2006 à 12:57:49
skelter a écrit : peut etre mais il est peu efficace, le mieux est de convertir directement les 2 dates en jours depuis un temps de reference |
Code :
|
Je ne sais pas s'il y a une bibliothèque qui permette le calcul du nombre de jours à partir d'une date donnée. Mais le jour Julien( Julian day ) est utilisé par les astronomes pour leurs calculs. C'est le nombre de jours depuis une date correspondant à des périodes lunaires et solaire qui se situe en l'an 4712 avant notre ère. J'ai trouvé ces deux algorythmes lors de recherches sur les phases lunaires.Voir ici
Marsh Posté le 14-05-2006 à 13:57:39
Hello,
J'ai besoin de connaître le nombre de jours écoulés entre 2 dates (plus précisément entre la date du jour et une date fournie).
Existe t'il un fonction déjà prévue ou pas, dans quel cas, quelqu'un a t'il déjà fais l'algo histoire de ne pas perdre du temps à tout refaire.
Merci.