Je coince avec les dates. [Resolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Je coince avec les dates. [Resolu]

Message 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
Dernière modification par MLD le sam. 16/janv./2010 18:34, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Je coince avec les dates.

Message par Backup »

......................
Dernière modification par Backup le dim. 20/mars/2011 14:51, modifié 1 fois.
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Je coince avec les dates.

Message 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
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Je coince avec les dates. [Resolu]

Message 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
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: Je coince avec les dates. [Resolu]

Message 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)))
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Je coince avec les dates. [Resolu]

Message 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).
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Je coince avec les dates. [Resolu]

Message 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 :)
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Je coince avec les dates. [Resolu]

Message 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
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: Je coince avec les dates. [Resolu]

Message 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
Répondre