PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → différences de dates : Help !!
différences de dates : Help !!
Débuté par Patrick, 21 jan. 2004 16:21 - 2 réponses
Posté le 21 janvier 2004 - 16:21
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.
Posté le 21 janvier 2004 - 17:49
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.
Posté le 21 janvier 2004 - 19:01
"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