PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Comment utiliser DateVersJour()
Comment utiliser DateVersJour()
Iniciado por Jean Turcotte, 27,oct. 2019 14:03 - 8 respuestas
Miembro registrado
1.395 mensajes
Publicado el 27,octubre 2019 - 14:03
Bonjour, j'aurais besoin d'isoler les jour de fin de semaine et j'aimerais bien comprendre comment fonctionne DateVersJour(); Si j'exécute le code suivant;
i est Date
nJour est entier
POUR i = dDateDébut À dDateFin
nJour = EntierVersJour(i..jour)
SI nJour = 6 ALORS
bFlagFDS = Vrai
SORTIR
SINON SI nJour = 7 ALORS
bFlagFDS = Vrai
SORTIR
FIN
FIN

La variable nJour me donne le bon numéro de jour alors que si j'éxécute le code suivant;
i, nJour est entier
POUR i = DateVersEntier(dDateDébut) À DateVersEntier(dDateFin)
nJour = EntierVersJour(i)
SI nJour = 6 ALORS
bFlagFDS = Vrai
SORTIR
SINON SI nJour = 7 ALORS
bFlagFDS = Vrai
SORTIR
FIN
FIN

La variable nJour me donne toujours le numéro du jour suivant ?

Merci de votre aide.

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
909 mensajes
Publicado el 27,octubre 2019 - 16:56
Bonjour,

Peux être comme cela : ( j'ai bouclé du premier au dernier jour du mois pour exemple )

i est Date
ddatedébut est une Date = PremierJourDuMois(DateDuJour)
ddatefin est une Date = DernierJourDuMois(DateDuJour)
bFlagFDS est un booléen


POUR i = ddatedébut À ddatefin

SELON DateVersJour(i)
CAS 6,7
bFlagFDS = Vrai

AUTRE CAS

FIN
FIN



Numéro du jour de la semaine correspondant à la date spécifiée :
1 - Lundi
2 - Mardi
3 - Mercredi
4 - Jeudi
5 - Vendredi
6 - Samedi
7 - Dimanche

Christian
Mensaje modificado, 27,octubre 2019 - 16:58
Miembro registrado
2.321 mensajes
Publicado el 27,octubre 2019 - 17:08
Bonjour,

voir aussi https://doc.pcsoft.fr/fr-FR/?1000019883&name=DernierJourDeLaSemaine

--
Bon dev,
Jean-Pierre
Mensaje modificado, 27,octubre 2019 - 17:09
Miembro registrado
2.682 mensajes
Publicado el 28,octubre 2019 - 09:04
Bonjour,

Un exemple très simple:
dDateDébut est une Date = DateSys()
dDateFin est une Date = DateSys()

dDateFin..Jour += 7

TANTQUE dDateDébut <= dDateFin
Trace(DateVersJour(dDateDébut))

dDateDébut..Jour += 1
FIN


Résultat
1
2
3
4
5
6
7
1


--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
1.395 mensajes
Publicado el 28,octubre 2019 - 12:43
Bonjour, c'est vraiment bien de constater à quel point la programmation peut varier d'un programmeur à l'autre. Toutes vos méthodes me convienne mais je n'en n'utiliserai qu'une;) merci beaucoup..

Ma question persiste, est-ce que quelqu'un sait pourquoi la fonction 'EntierVersJour(Date)' me donne le jour suivant?

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
4.361 mensajes
Publicado el 28,octubre 2019 - 13:27
Ne serait ce pas une histoire de semaine qui commence un dimanche ou vice versa ?

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
1.640 mensajes
Publicado el 28,octubre 2019 - 13:52
Hello,

Je viens de tester ton code, et il me renvoi bien le bon n° de jour.

Par contre, en conservant ta logique, tu pourrais simplifier grandement ton code :

POUR i = DateVersEntier(dDateDébut) _À_ DateVersEntier(dDateFin) // _A_ plutôt que A (ainsi il ne calcul qu'une seul fois DateVersEntier(dDateFin))
SI EntierVersJour(i) DANS (6,7) ALORS
bFlagFDS = Vrai
SORTIR
FIN
FIN
Miembro registrado
1.395 mensajes
Publicado el 28,octubre 2019 - 14:30
Merci, c'est effectivement plus simple comme ca. 8)

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
310 mensajes
Publicado el 28,octubre 2019 - 15:29