PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → différences de dates : Help !!
différences de dates : Help !!
Started by patrick.chartier, Jan., 21 2004 4:21 PM - 2 replies
Posted on January, 21 2004 - 4:21 PM
Je dois obtenir la différence entre deux dates qui peuvent être sur des années
différentes en nombre de trimestres, de mois et de jours.
Comment faire
Merci pour votre aide.
Posted on January, 21 2004 - 5:49 PM
Vois l'aide en ligne : DateDifférence().

"Patrick" <patrick.chartier@usa.com> wrote:


Je dois obtenir la différence entre deux dates qui peuvent être sur des

années
différentes en nombre de trimestres, de mois et de jours.
Comment faire
Merci pour votre aide.
Posted on January, 21 2004 - 7:01 PM
"Patrick" <patrick.chartier@usa.com> wrote:


Je dois obtenir la différence entre deux dates qui peuvent être sur des

années
différentes en nombre de trimestres, de mois et de jours.
Comment faire
Merci pour votre aide.

Bonjour Patrick,

Si tu as besoin de résultats approchés, utilise DateDifférence:
NbJour = DateDifférence(Date1,Date2)
NbMois = PartieEntiére(DateDifférence(Date1,Date2)/365*12)
NbTrim = PartieEntiére(NbMois/3)

Voici 2 morceaux de code qui devrait t'aider si tu cherches plus de précision:
// SaisieDébut est le champ de saisie de la date de début
// Calcul du nombre d'années, mois, jour entre 2 dates
// SaisieFin est le champ de saisie de la date de fin
// SaisieMois est le champs d'affichage du résultat
DateDébut est une Date = SaisieDébut
dDébut est une Date = DateDébut
NbMois est un entier
dDébut..Mois ++
TANTQUE dDébut <= SaisieFin
NbMois ++
dDébut..Mois ++
dDébut..Jour = DateDébut..Jour
FIN
SaisieMois = NbMois


// Calcul du nombre de mois entre 2 dates
DateDébut est une Date = SaisieDébut
DateFin est une Date = SaisieFin
dDébut est une Date = DateDébut
NbAnnées, NbMois, NbJours sont des entiers
// test de cohérence
SI DateDébut > DateFin ALORS Info("Date future") ; RETOUR
// calcul du nombre d'années entiéres
dDébut..Année ++
TANTQUE dDébut <= DateFin
NbAnnées ++
dDébut..Année ++
FIN
dDébut..Année --
// Calcul du nombre de mois entiers
dDébut..Mois ++
TANTQUE dDébut <= DateFin
NbMois ++
dDébut..Mois ++
// Attention, tous les mois n'ont pas le même nombre de jours
dDébut..Jour = DateDébut..Jour
FIN
dDébut..Mois --
dDébut..Jour = DateDébut..Jour
// calcul du nombre de jours restants
NbJours = DateDifférence(dDébut,DateFin)
SaiDurée = NbAnnées+" Ans "+NbMois+" mois "+NbJours+" jours"

Les champs de saisie de date renvoie le format "AAAAMMJJ"

Amuse toi bien,

Eric