|
[Résolu] Dernier jour du mois |
|
Stagiaire WDF
Inscrit: 19/04/2003 09:22
Post(s): 3
|
Bonjour,
Le code suivant me retourne 20060130 comme dernier jours du mois pour janvier. Idem pour tous les mois à 31 jours.
dMaDate est une Date
dMaDate..Jour=31 dMaDate..Mois=1 dMaDate..Année=2006 Info(dMaDate)
Le code suivant me retourne 20000228 au lieu de 2000229.
dMaDate est une Date
dMaDate..Jour=31 dMaDate..Mois=2 dMaDate..Année=2000 Info(dMaDate)
Version utilisée : W10 01F100062e sur WindowsXP SP2
Est-ce un bug windev ou une erreur d'interprétation de ma part.
Merci.
Contribution le : 10/09/2006 15:22
Edité par drcharly93 sur 12/9/2006 4:11:48
|
|
|
Re: Dernier jour du mois |
|
Utilisateur WDF
Inscrit: 30/07/2006 19:34
Post(s): 57
|
Je pense que c'est une erreur d'interprétation de l'utilité des fonctions jour/mois/année. Entk, j'ai le même résultat (WD9-34j sous W2K) Ceci fonctionne parfaitement :
dMaDate est une Date = "20060131"
Info(dMaDate+RC+"Jour : "+dMaDate..Jour+RC+"Mois : "+dMaDate..Mois+RC+"Année : "+dMaDate..Année)
Tu essayes de faire quoi ?
Contribution le : 10/09/2006 19:40
|
|
|
Re: Dernier jour du mois |
|
Stagiaire WDF
Inscrit: 19/04/2003 09:22
Post(s): 3
|
Bonjour Guardian,
Le but est de sélectionner, à l'aide d'une requête, des enregistrements pour un mois donné.
Les paramètres de ma requête sont donc "DateDebut" et "DateFin". Je sais que tous les mois commencent le 1er et se terminent, selon les mois ou les années, soit le 30,le 31,le 28 ou le 29.
D'après l'aide de Windev, je ne dois pas me préoccuper du dernier jour du mois. Il suffit d'assiger 31 à la propriété jour de la date et Windev se charge de corriger.
Je connais l'année puisque je ne traite que les données d'une année civile (variable globale au projet).
Il me reste à déterminer le mois. Pour ce faire, j'ai une combo avec tous les mois de l'année dans l'ordre (janvier, février, mars,.....). Lors de la sélection du mois dans la combo, je récupère l'indice de la ligne (janvier=1, février=2, mars=3,....)
Ayant tous les élements, je reconstitue mes dates de paramètres:
DD est une date //DD pour date début DD..jour = 1 DD..mois = indice de la ligne de la combo DD..année = variable globale au projet
DF est une date //DF pour date fin DF..jour = 31 DF..mois = indice de la ligne de la combo DF..année = variable globale au projet
HExécuteRequête(MaRequête,hRequêteDéfaut,DD,DF)
Si le mois choisi se termine le 31, la requête ne me renvoie que les enregistrements compris entre le 1er et le 30.
J'espère avoir été suffisament clair.
Bonne journée.
Contribution le : 11/09/2006 07:49
|
|
|
Re: Dernier jour du mois |
|
DSI WDF
Inscrit: 13/02/2006 16:52
Post(s): 266
|
Ton souci est je pense évident !!!!
Essaye de procéder dans l'ordre !!!
Au lieu de paramétrer JOUR MOIS ANNEE
Essaye de paramétrer ANNE MOIS JOUR, car c'est en fonction de cela que ton dernier jour de mois est déterminé, d'ou le code :
sDate..Annee = 2002 sDate..Mois = 2 sDate..Jour = 31
Renverra bien 29/02/2002
J'espère avoir été clair, et tiens moi au courant si cela a corrigé ton soucis !!!
Contribution le : 11/09/2006 08:30
|
|
|
Re: Dernier jour du mois |
|
Stagiaire WDF
Inscrit: 19/04/2003 09:22
Post(s): 3
|
Merci Machou43,
Il suffisait effectivement de procéder dans l'ordre pour que cela fonctionne parfaitement.
Souci corrigé.
Bonne journée.
Contribution le : 11/09/2006 09:46
|
|
|
Re: Dernier jour du mois |
|
DSI WDF
Inscrit: 13/02/2006 16:52
Post(s): 266
|
Et oui la plupart des erreurs sont des erreurs de logiques ...
Heureux d'avoir pu t'aider !!!
Contribution le : 11/09/2006 10:58
|
|
|
Re: Dernier jour du mois |
|
Animateur WDF
Inscrit: 19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
|
Bonjour,
Autre méthode pour trouver le dernier jour du mois (plus logique) :
Pour le mois de février, prendre le 1er jour du mois de mars (mois suivant) - 1 jour.
sDate..Annee = 2002 sDate..Mois = 3 sDate..Jour = 1 sDate..Jour -= 1
L'autre méthode devrait normalement renvoyer une date invalide :p
P.S.: Fonctionne quel que soit l'ordre d'affectation.
Bon dév.,
Totof
Contribution le : 11/09/2006 23:24
|
|
|
Re: [Résolu] Dernier jour du mois |
|
DSI WDF
Inscrit: 13/02/2006 16:52
Post(s): 266
|
L'autre méthode ne renverra pas une date invalide dans le sens ou d'après l'aide, quand on affecte 31 à la rubrique JOUR d'une variable date, cela veut dire qu'on veut le dernier jour du mois !!!
Par conséquent aucun soucis !!!
Contribution le : 13/09/2006 10:12
|
|
|
Re: Dernier jour du mois |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, A moins que je n'utilise pas la bonne version le code suivant fonctionne parfaitement tel que le mentionne Machou43
dDate est une date
//On commence toujours par l'année, mois et jours
dDate..Année = 2004
dDate..Mois = 2
dDate..Jour = 31
Info(DateVersChaîne(dDate,"JJ/MM/AAAA"))
//Résultat : 29/02/2004
Contribution le : 13/09/2006 10:43
|
|
|
Re: Dernier jour du mois |
|
DSI WDF
Inscrit: 13/02/2006 16:52
Post(s): 266
|
Pour une fois que je dis pas de conneries ...lol
Contribution le : 14/09/2006 08:47
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|