Page 1 sur 1

Je coince avec les dates. [Resolu]

Publié : sam. 16/janv./2010 14:22
par MLD
Bonjour a tous
Pour un programme, je voudrai connaitre le nombre de jours entre deux dates, et pas forcément de la même année.
Exp: nombre de jours entre le 2-2-2009 et le 10-1-2010.
Je tourne en rond avec les fonctions de PB sans résultat.
En VB il y a une fonction DifDate(date1, date2).
En fait la même chose serait Top.
Michel

Re: Je coince avec les dates.

Publié : sam. 16/janv./2010 15:29
par Backup
......................

Re: Je coince avec les dates.

Publié : sam. 16/janv./2010 16:24
par MLD
Merci Dobro :lol:
Depuis que tu es rentré, j'espère que tu ne déprimes pas trop vu la météo en métropole. MAIS JE SUIS SURE QUE TU AS LA TËTE PLEINE DE MERVEILLEUX SOUVENIRS QUI ILLUMINENT LES JOURS DE GRISAILLE. :lol:
Michel

Re: Je coince avec les dates. [Resolu]

Publié : sam. 16/janv./2010 18:38
par MLD
Dobro! c'est encore MLD
J'ai eu un peu de lumière avec tes codes .
J'ai compressé un peu le 2em

Code : Tout sélectionner

;//////////// MLD le 19/1/2010 /////////////////////
Procedure nbj(date1.s,date2.s)
jd1 =Val( StringField(date1,1,"/"))
md1 = Val(StringField(date1,2,"/"))
ad1 = Val(StringField(date1,3,"/"))

jd2 =Val( StringField(date2,1,"/"))
md2 = Val(StringField(date2,2,"/"))
ad2 = Val(StringField(date2,3,"/"))

difan = ad2 - ad1
difjour = 0
If difan <> 0
 Tnbj =0:Nbja =0  
 For x = ad1 To ad2 -1
  Nbja = DayOfYear(Date(x, 12, 31, 0, 0, 0)) 
  Tnbj = Tnbj +  Nbja
 Next
 difjour = Tnbj - DayOfYear(Date(ad1,md1,jd1, 0, 0, 0)) +  DayOfYear(Date(ad2,md2,jd2, 0, 0, 0))
 ProcedureReturn difjour
Else
 difjour = DayOfYear(Date(ad2,md2,jd2, 0, 0, 0)) - DayOfYear(Date(ad1,md1,jd1, 0, 0, 0)) 
 ProcedureReturn difjour
EndIf  
EndProcedure
Debug " Le nombre de jours entre les deux dates est : " +Str( nbj("31/12/2009","16/1/2010"))
Bon W.E
Michel

Re: Je coince avec les dates. [Resolu]

Publié : dim. 17/janv./2010 16:07
par lepiaf31
Dites, un truc comme ca c'est pas plus simple : ?

Code : Tout sélectionner

Date1 = Date(2009, 2, 2, 0, 0, 0)
Date2 = Date(2010, 1, 10, 0, 0, 0)

Debug Int(Abs((Date1-Date2)/(3600*24)))

Re: Je coince avec les dates. [Resolu]

Publié : dim. 17/janv./2010 20:24
par Geo Trouvpatou
Salut.

Lepiaf ton code est fonctionnel tant que l'année est supérieure à 1970.
En dessous, cela ne fonctionne plus.
Les limites de Date() sont notifiées dans la doc.

Le code de MLD n'a pas l'air de fonctionner non plus si la date est antérieure à 1970.

Celui de Dobro à l'air d'être impec (Certainement l'air de Tahiti qui y fait).

Re: Je coince avec les dates. [Resolu]

Publié : dim. 17/janv./2010 23:03
par Backup
Geo Trouvpatou a écrit :Celui de Dobro à l'air d'être impec (Certainement l'air de Tahiti qui y fait).
heu ! je crois pas qu'il soit de moi ce code... :mrgreen:
Merci quand meme :mrgreen: :lol:

de memoire, il me semble que je l'ai traduit d'un code en VB :)

Re: Je coince avec les dates. [Resolu]

Publié : lun. 18/janv./2010 9:11
par MLD
Salut a tous
OK je reste dans les limites de la doc. :cry:
Merci et bravo lepiaf31, ton code est plus court. :D
Tu gagne donc le droit de jouer une prochaine fois. :mrgreen:
Michel

Re: Je coince avec les dates. [Resolu]

Publié : lun. 18/janv./2010 21:39
par lepiaf31
MLD a écrit : Merci et bravo lepiaf31, ton code est plus court. :D
Tu gagne donc le droit de jouer une prochaine fois. :mrgreen:
Michel
Merci :p