|
| Question de base pour manipuler les Dates |
| Iniciado por Jean Turcotte, 11,abr. 2019 13:54 - 15 respuestas |
| |
| | | |
|
| |
Miembro registrado 1.405 mensajes |
|
| Publicado el 11,abril 2019 - 13:54 |
Bonjour,
J'utilise un calendrier pour sélectionner une date, que je transfert dans une variable de type Date. Je veux seulement additionner un jour à la fois ex DateSuivante = Dateactuelle + 1 mais je n'y arrive.
Avec toutes l'étendue de commandes possibles dans WD, je n'ose imaginer qu'il n'y a pas de commandes pour simplifier ces type de manipulation. Je sais que je peux manipuler des chaines pour y arriver mais le changement de mois et d'année pause réellement problème.
Je sais que ça semble une question simple mais après avoir passé quelques heures à fouiller dans l'aide PCSOFT, je n'y arrive pas.
DateDebut est Date = SAI_DateDébut DateSuivante est Date
POUR i = x À (x-1) + gnNombrePersoPlanif TABLE_Entetes[1][i] = DateVersChaîne(DateDebut, "JJJJ JJ MMM") TABLE_Entetes[1][i]..Fusion = fusionCelluleSuivante TABLE_Entetes[1][i]..CouleurFond = CouBlankColonne FIN x = x + gnNombrePersoPlanif + 2 POUR i = x À (x-1) + gnNombrePersoPlanif DateSuivante = DateDebut + 1 TABLE_Entetes[1][i] = DateVersChaîne(DateSuivante, "JJJJ JJ MMM") TABLE_Entetes[1][i]..Fusion = fusionCelluleSuivante TABLE_Entetes[1][i]..CouleurFond = CouBlankColonne FIN Dites-moi que vous savez comment faire.
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 231 mensajes |
|
| Publicado el 11,abril 2019 - 14:46 |
Salut Regarde du coté dateversentier puis entierversdate. ta date vers un entier puis + 1 et cet entier tu lui fais un entier vers date. Bon dév.
-- Stéphane.Mensaje modificado, 11,abril 2019 - 14:48 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.405 mensajes |
|
| Publicado el 11,abril 2019 - 15:20 |
Bonjour Stephane, c'est une excellente idée mais si je fais ca, je dois gérer les 30 et 31 de fin de mois, les changements de mois et d'années manuellement et c'est un vrai casse-tete.
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,abril 2019 - 15:39 |
Il n'y a pas plus simple:
DateSuivante..jour+=1 //Ajoute un jour DateSuivante..jour+=28 //Ajoute 28 jours DateSuivante..mois+=3 //Ajoute 3 mois
etc... |
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,abril 2019 - 15:44 |
Jean TURCOTTE a écrit :
Bonjour Stephane, c'est une excellente idée mais si je fais ca, je dois gérer les 30 et 31 de fin de mois, les changements de mois et d'années manuellement et c'est un vrai casse-tete.
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram
Ben, non, fais ce que te dit Stéphane et tout ira bien,. Je fais ça depuis windev 4.1 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.405 mensajes |
|
| Publicado el 11,abril 2019 - 16:19 |
Si je dit Date = "20190411" et que je fait: JourSuivant = Date..jour+= Le résultat est "12" et non "20190412" comme désiré ?
Dois-je alors concatener Date..Annee + Date..Mois + Date..JourSuivant ?
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 231 mensajes |
|
| Publicado el 11,abril 2019 - 16:29 |
Si tu fais dateversentier dateversentier(20191231) il te donne exemple 1558623 don tu fais +1 se qui fait entierversdate(1558624) il te donne 20200101, je vois pas en quoi tu te prends la tête, ou je n'ai pas compris ta demande...
-- Stéphane. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 40 mensajes |
|
| Publicado el 11,abril 2019 - 16:34 |
Bonjour,
comme l'explique Eric, il n'y a pas plus simple !!!
DateDebut est Date = SAI_DateDébut DateSuivante est Date
POUR i = x A (x-1) + gnNombrePersoPlanif TABLE_Entetes[1][i] = DateVersChaîne(DateDebut, "JJJJ JJ MMM") TABLE_Entetes[1][i]..Fusion = fusionCelluleSuivante TABLE_Entetes[1][i]..CouleurFond = CouBlankColonne FIN
x = x + gnNombrePersoPlanif + 2 POUR i = x A (x-1) + gnNombrePersoPlanif DateSuivante=DateDebut DateSuivante..Jour+=i TABLE_Entetes[1][i] = DateVersChaîne(DateSuivante, "JJJJ JJ MMM") TABLE_Entetes[1][i]..Fusion = fusionCelluleSuivante TABLE_Entetes[1][i]..CouleurFond = CouBlankColonne FIN
x = x + gnNombrePersoPlanif + 2 DateSuivante=DateDebut POUR i = x A (x-1) + gnNombrePersoPlanif DateSuivante..Jour+=1 TABLE_Entetes[1][i] = DateVersChaîne(DateSuivante, "JJJJ JJ MMM") TABLE_Entetes[1][i]..Fusion = fusionCelluleSuivante TABLE_Entetes[1][i]..CouleurFond = CouBlankColonne FIN
Cordialement, Laurent33 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,abril 2019 - 16:36 |
Tout simplement
dTemp est Date = "20190412" dNext est Date = dTemp dNext..Jour++
Bonne journée Stef |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.405 mensajes |
|
| Publicado el 11,abril 2019 - 17:05 |
Le résultat me donne "13", y a t-il moyen d'obtenir la date entiere "20190413" ? ou dois-je concatener chaque partie.
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 139 mensajes |
|
| Publicado el 11,abril 2019 - 17:49 |
Je ne vois vraiment pas pourquoi tu n'y arrive pas !
Attention. Si tu utilise la propriété ..Jour pour incrémenter une date, il ne faut pas passer par une variable intermédiaire, sinon, c'est la variable que tu incrémentes, pas la date (ce qui correspond peut-être à ton résultat "13")
Bref, reproduit le code complet et on pourra t'aider |
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,abril 2019 - 17:57 |
Je le répette, il n'y a pas plus simple !
Il faut déclarer ta variable en tant que 'Date'
MaDate est une date // Prend par défaut la date du jour soit aujourd'hui "20190411"
MaDate..jour+=4 //Ajoute 4 jours Trace(MaDate) // Donnera "20190415" Trace(MaDate..jour) // Donnera "15" Trace(MaDate..mois) // Donnera "04"
etc... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.405 mensajes |
|
| Publicado el 11,abril 2019 - 18:09 |
Stéphane a écrit :
Tout simplement
dTemp est Date = "20190412" dNext est Date = dTemp dNext..Jour++
Bonne journée Stef
Voici le code utilisé. Merci de votre patience.
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,abril 2019 - 18:49 |
Jean TURCOTTE a écrit :
Avec toutes l'étendue de commandes possibles dans WD, je n'ose imaginer qu'il n'y a pas de commandes pour simplifier ces type de manipulation.
Je sais que ça semble une question simple mais après avoir passé quelques heures à fouiller dans l'aide PCSOFT, je n'y arrive pas.
Dites-moi que vous savez comment faire.
-- Jean Turcotte
Ahah,
Avez-vous bien (re)lu la doc sur le type Date, puis ses propriétés, puis sur les fonctions ? Stop, pas la peine d'aller jusqu'aux fonctions. Arrêtez-vous le temps nécessaire sur les propriétés, ce que beaucoup négligent si j'en crois les réponses fréquemment données.
Par exemple (et ce n'en est qu'un parmi d'autres des possibilités qu'ouvrent ces propriétés) pour revenir à votre question : un petit extrait de la doc sur la propriété ..Jour, visible ici : https://doc.pcsoft.fr/fr-FR/?2512043&name=Jour
Cas 2 : Opérations sur les jours Lors d'opérations sur les dates, le changement de mois est automatiquement géré. Ainsi, si le nombre de jours est supérieur au nombre de jours valide pour le mois manipulé, le nombre de jours repart de 1 et le numéro du mois est automatiquement modifié. L'année est également modifiée si nécessaire (mois de décembre par exemple).
TOUT cela automatiquement !
Et c'est du même tonneau pour toutes les propriétés des types Date, Heure et DateHeure. Donc, vaut, enfin valent, le détour.
Bonne lecture
Hemgé |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 86 mensajes |
|
| Publicado el 11,abril 2019 - 18:53 |
Bonjour Je confirme la solution d'Eric Bon dev
-- On a le droit de ne pas savoir, on n'a pas le droit de ne pas apprendre Jean Claude Boulet |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.405 mensajes |
|
| Publicado el 11,abril 2019 - 22:32 |
Merci à vous tous pour votre aide,
Malgré le fait d'avoir lu toute la doc sur les DATE, je suis encore en apprentissage et je me rends bien compte, que mon problème à l'origine n'en était pas un et que j'y était presque. Il me manquais juste le petit coup de main que vous m'avez offert.
Sachez messieurs, que je l'apprécie vraiment! Au plaisir ! 
-- Jean Turcotte WX 24 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | | | |
| | |
|