Calculer automatiquement le premier jour de chaque semaine

Le
pyfux
Bonjour,

J'ai besoin de calculer pour un année, les dates des premiers jour de chaque
semaine.
Pour l'année 2008 et la semaine 01 c'est le 01/01/2008
Pour l'année 2008 et la semaine 02 c'est le 07/01/2008
Pour l'année 2008 et la semaine 03 c'est le 14/01/2008
Pour l'année 2008 et la semaine 04 c'est le 21/01/2008
Pour l'année 2008 et la semaine 05 c'est le 28/01/2008

jusque là c'est plutôt facile, non ?

mais:
Pour l'année 2008 et la semaine 06 c'est le 4/02/2008


La piste de ma solution c'est de partir du 01/01/2008
et de faire date..jour += 7

mais ça ne marche pas, l'opérateur + n'incrémente pas le mois !!!

Help
PYFUX
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Wrk
Le #16359711
pyfux a utilisé son clavier pour écrire :
Bonjour,

J'ai besoin de calculer pour un année, les dates des premiers jour de chaque
semaine.
Pour l'année 2008 et la semaine 01 c'est le 01/01/2008
Pour l'année 2008 et la semaine 02 c'est le 07/01/2008
Pour l'année 2008 et la semaine 03 c'est le 14/01/2008
Pour l'année 2008 et la semaine 04 c'est le 21/01/2008
Pour l'année 2008 et la semaine 05 c'est le 28/01/2008

jusque là c'est plutôt facile, non ?

mais:
Pour l'année 2008 et la semaine 06 c'est le 4/02/2008


La piste de ma solution c'est de partir du 01/01/2008
et de faire date..jour += 7

mais ça ne marche pas, l'opérateur + n'incrémente pas le mois !!!

Help
PYFUX



Bonjour,

Bizarre

-------------------------------------
dTest est une Date="20080101"
i est un entier
POUR i=1 A 25
dTest..Jour+=7
Trace(dTest)
FIN
-------------------------------------

Fonctionne très bien.
pyfux
Le #16359701
La solution est simple..désolé!

dDATES=EntierVersDate(DateVersEntier(dDATES)+7)


"pyfux" 48806ac4$0$12665$
Bonjour,

J'ai besoin de calculer pour un année, les dates des premiers jour de
chaque semaine.
Pour l'année 2008 et la semaine 01 c'est le 01/01/2008
Pour l'année 2008 et la semaine 02 c'est le 07/01/2008
Pour l'année 2008 et la semaine 03 c'est le 14/01/2008
Pour l'année 2008 et la semaine 04 c'est le 21/01/2008
Pour l'année 2008 et la semaine 05 c'est le 28/01/2008

jusque là c'est plutôt facile, non ?

mais:
Pour l'année 2008 et la semaine 06 c'est le 4/02/2008


La piste de ma solution c'est de partir du 01/01/2008
et de faire date..jour += 7

mais ça ne marche pas, l'opérateur + n'incrémente pas le mois !!!

Help
PYFUX



pyfux
Le #16359691
Merci

"Bruno Wrk"
pyfux a utilisé son clavier pour écrire :
Bonjour,

J'ai besoin de calculer pour un année, les dates des premiers jour de
chaque semaine.
Pour l'année 2008 et la semaine 01 c'est le 01/01/2008
Pour l'année 2008 et la semaine 02 c'est le 07/01/2008
Pour l'année 2008 et la semaine 03 c'est le 14/01/2008
Pour l'année 2008 et la semaine 04 c'est le 21/01/2008
Pour l'année 2008 et la semaine 05 c'est le 28/01/2008

jusque là c'est plutôt facile, non ?

mais:
Pour l'année 2008 et la semaine 06 c'est le 4/02/2008


La piste de ma solution c'est de partir du 01/01/2008
et de faire date..jour += 7

mais ça ne marche pas, l'opérateur + n'incrémente pas le mois !!!

Help
PYFUX



Bonjour,

Bizarre

-------------------------------------
dTest est une Date="20080101"
i est un entier
POUR i=1 A 25
dTest..Jour+=7
Trace(dTest)
FIN
-------------------------------------

Fonctionne très bien.




Eric Laurent
Le #16359681
Bizarre en effet car chez moi, le code suivant fonctionne
dDhjour est une Date="20080101"
POUR i=1 A 20
dDhjour..Jour+=7
Trace (dDhjour)
FIN

le résultat est:
20080108
20080115
20080122
20080129
20080205
20080212
20080219
20080226
20080304
20080311
20080318
20080325
20080401
20080408
20080415
20080422
20080429
20080506
20080513
20080520


Tu peux toujours utiliser dateversentier(date)+7

Cordialement,

--
Eric Laurent

(enlever nospam.)
pyfux
Le #16361121
Et bien essayez:

---------------------------------------------

dDate est une Date

dDate=ChaîneVersDate("01/01/2008")

TANTQUE DateVersChaîne( dDate,"YYYY")="2008"

dDate..JourÝate..Jour + 7

Info(DateVersChaîne(dDate,"dd/mm/yyyy"))

FIN

---------------------------------------------

Petit crash en semaine 6.

Des idées d'explication? Sachant que c'est solutionné...

PYFUX

"Eric Laurent" news:
Bizarre en effet car chez moi, le code suivant fonctionne
dDhjour est une Date="20080101"
POUR i=1 A 20
dDhjour..Jour+=7
Trace (dDhjour)
FIN

le résultat est:
20080108
20080115
20080122
20080129
20080205
20080212
20080219
20080226
20080304
20080311
20080318
20080325
20080401
20080408
20080415
20080422
20080429
20080506
20080513
20080520


Tu peux toujours utiliser dateversentier(date)+7

Cordialement,

--
Eric Laurent

(enlever nospam.)




Bruno Wrk
Le #16361111
Dans son message précédent, pyfux a écrit :
Petit crash en semaine 6.

Des idées d'explication? Sachant que c'est solutionné...



dDate..JourÝate..Jour + 7

Erreur, voir notes concernant "Jour".
Un exemple le cite comme une chose à ne pas faire.
Romain PETIT
Le #16361441
Bruno Wrk a exprimé avec précision :
dDate..JourÝate..Jour + 7
Erreur, voir notes concernant "Jour".
Un exemple le cite comme une chose à ne pas faire.



Il faut avouer que c'est piégieux et pas très logique...

Dans le même genre, j'ai perdu un peu de temps (ya pas de message
d'erreur là...) :

mValeur est un monétaire
mvaleur = 42.9999999
trace(mValeur) //-> donne 43


--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Daireaux Jean-Baptiste
Le #16362801
Romain PETIT a écrit :
Bruno Wrk a exprimé avec précision :
dDate..JourÝate..Jour + 7
Erreur, voir notes concernant "Jour".
Un exemple le cite comme une chose à ne pas faire.



Il faut avouer que c'est piégieux et pas très logique...

Dans le même genre, j'ai perdu un peu de temps (ya pas de message
d'erreur là...) :

mValeur est un monétaire
mvaleur = 42.9999999
trace(mValeur) //-> donne 43





Moi je fait :

m est un monétaire

mB.999999
trace(m) //-> affiche 42.999999

par contre

mB.9999999
trace(m) //-> affiche 43

un monétaire n'a que 6 décimale donc '42.999999' peut être considéré
comme un monétaire mais '42.9999999' est lui un réel si tu l'affecte a
un monétaire il y a exécution implicite de arrondi(42.9999999,6)C

voila...
J.B.D.
Romain PETIT
Le #16362781
Daireaux Jean-Baptiste avait soumis l'idée :

un monétaire n'a que 6 décimale donc '42.999999' peut être considéré comme un
monétaire mais '42.9999999' est lui un réel si tu l'affecte a un monétaire il
y a exécution implicite de arrondi(42.9999999,6)C



Oui, je sais, c'est pour ça que je dit que c'est également piégieux et
que ça m'a fait perdre un peu de temps...
J'aurais préféré que WD m'insulte avec un beau mesage d'erreur de cast
que de laisser passer ça...

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Albert
Le #16368521
Bonjour

La piste de ma solution c'est de partir du 01/01/2008
et de faire date..jour += 7

mais ça ne marche pas, l'opérateur + n'incrémente pas le mois !!!



Normal

Pour incémenter le mois
Maintenant en partant du n° de semaine renvoyé par la fonction

<Résultat> = NuméroDeSemaine(<Date>)

il est assez simple de déterminer la date du lundi de la semaine
concernée

Cordialement

Albert
Publicité
Poster une réponse
Anonyme