PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Gestion des dates
Gestion des dates
Débuté par deaddate, 04 jan. 2005 17:44 - 7 réponses
Posté le 04 janvier 2005 - 17:44
bonjour,
selon l'aide en ligne de windev,
pour gerer une date on doit utiliser ce code:

madate..jour =
madate..mois =
madate..année =

tout sa me plait bien mais cela me pose un problème. En effet, lorsque ma date de référence et le 01/01/2004 et que je souhaite par calcul trouver le 31/12/2004, je fais

madate..année +=1
madate..jour -=1

pour avoir le 01/01/2005 - 1 = 31/12/2004

le souci c'est que je ne peut pas avoir madate..jour = 0...

Quelqu'un peut m'aider? Merci d'avance
Posté le 04 janvier 2005 - 17:57
IF madate..jour=1 THEN madate..jour = 12; madate..annee -= 1 else
madate..jour-=1

"laurent" <deaddate@hotmail.com> a écrit dans le message de
news:41daafa0@news.pcsoft.fr...

bonjour,
selon l'aide en ligne de windev,
pour gerer une date on doit utiliser ce code:

madate..jour =
madate..mois =
madate..année =

tout sa me plait bien mais cela me pose un problème. En effet, lorsque ma

date de référence et le 01/01/2004 et que je souhaite par calcul trouver le
31/12/2004, je fais

madate..année +=1
madate..jour -=1

pour avoir le 01/01/2005 - 1 = 31/12/2004

le souci c'est que je ne peut pas avoir madate..jour = 0...

Quelqu'un peut m'aider? Merci d'avance
Posté le 04 janvier 2005 - 18:15
bonjour,
selon l'aide en ligne de windev,
pour gerer une date on doit utiliser ce code:

madate..jour =
madate..mois =
madate..année =

tout sa me plait bien mais cela me pose un problème. En effet, lorsque ma date de référence et le 01/01/2004 et que je souhaite par calcul trouver le 31/12/2004, je fais

madate..année +=1
madate..jour -=1

pour avoir le 01/01/2005 - 1 = 31/12/2004

le souci c'est que je ne peut pas avoir madate..jour = 0...

Quelqu'un peut m'aider? Merci d'avance


Salut,

Il faut :
1) convertir la date en entier dateversentier(MaDate)
2) retirer un jour (-1)
3) convertir le résultat en date entierversdate()

Ce qui devrait donner un truc qui ressemble à : EntierVersDate(DateVersEntier(MaDate)-1)

Bon dev+

Stephan
Posté le 04 janvier 2005 - 18:15
Il n'y a aucun problème, Windev gère tout seul le changement de mois et
le passage au dernier jour du mois précédent.
si tu as :
MaDate = "20040101"
MaDate..Jour --
donnera : "20031231"

Philippe Pasquali a écrit:
IF madate..jour=1 THEN madate..jour = 12; madate..annee -= 1 else
madate..jour-=1

"laurent" <deaddate@hotmail.com> a écrit dans le message de
news:41daafa0@news.pcsoft.fr...

bonjour,
selon l'aide en ligne de windev,
pour gerer une date on doit utiliser ce code:

madate..jour =
madate..mois =
madate..année =

tout sa me plait bien mais cela me pose un problème. En effet, lorsque ma

date de référence et le 01/01/2004 et que je souhaite par calcul trouver le
31/12/2004, je fais

madate..année +=1
madate..jour -=1

pour avoir le 01/01/2005 - 1 = 31/12/2004

le souci c'est que je ne peut pas avoir madate..jour = 0...

Quelqu'un peut m'aider? Merci d'avance



Posté le 04 janvier 2005 - 18:16
oui, je suis d'accord avec le principe sauf que là on aura le 12/01/2003 et pas le 31/12/2004
mais si ma date tombe sur le mois de février et que je ne cherche pas a savoir si j'ai une année bisextile ou pas...
je risque de me planter...

n'y a t'il pas de meilleur moyen?
pour le moment je passe par une variable entier qui me permet ceci

madate..année += 1
maval = dateversentier(madate)
maval -= 1
madate=entierversdate(maval)

sa fonctionne mais je trouve cela très lourd....
Autres proposition??
Posté le 04 janvier 2005 - 18:47
Génial merci beaucoup céline sa c'est du code comme je l'aime
merci encore et bonne année
Posté le 04 janvier 2005 - 18:52
"laurent" <deaddate@hotmail.com> écrivait news:41daafa0@news.pcsoft.fr:

madate..année +=1
madate..jour -=1

pour avoir le 01/01/2005 - 1 = 31/12/2004

le souci c'est que je ne peut pas avoir madate..jour = 0...


Salut,

Le code que tu donnes fonctionne, tu l'as testé ?

Car même si le jour est 1, madate..jour -=1 ne donne pas 0.
En effet madate..jour -=1 donne la date moins un jour.
Donc dans l'ordre, si madate est le 01/01/2004

madate..année +=1 -> 01/01/2005 (madate..Jour=1, madate..Année 05)
madate..jour -=1 -> 31/12/2004 (madate..Jour1, madate..Année 04)


--
En esperant t'avoir aidé.
Posté le 05 janvier 2005 - 09:46
Bonjouir Laurent

"laurent" <deaddate@hotmail.com> a écrit dans le message de news:
41dab706@news.pcsoft.fr...

oui, je suis d'accord avec le principe sauf que là on aura le 12/01/2003
et pas le 31/12/2004
mais si ma date tombe sur le mois de février et que je ne cherche pas a
savoir si j'ai une année bisextile ou pas...
je risque de me planter...

n'y a t'il pas de meilleur moyen?


Puisque Céline te dit que ça marche tout seul !!!


si madate est 01/02/2004
madate..jour1 et WD s'occupe de mettre 28 ou 29 selon l'année bissextile
ou pas

en bref :
pour avoir la fin du mois d'une date (quelque soit la date) :
madate..jour1

pour avoir la fin de l'année :
madate..mois
madate..jour1

difficile de faire en moins de ligne, non ?

Jean-Louis MOREL