> je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de cette
semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
> je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de cette
semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
> je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de cette
semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
Bonjour,
je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de
cette semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
Bonjour,
je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de
cette semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
Bonjour,
je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de
cette semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
tche s'est ainsi exprimé:
> Bonjour,
> je voulais savoir si quelq'un connaissait une fonction permettant de
> convertir un numero de semaine plus une année en le prmier jour de
> cette semaine (cad un lundi)
> On passerait a la fonction le numero de semaine et l'année et elle
> renverrais JJ/MM
Çà se retrouve aisément
(même s'il faut faire attention aux histoires d'intervalles, cf. cours de
CM2!) :
1) La convention de numerotation des jours
dans la semaine est la suivante (en France) :
1 : lundi
2 : mardi
...
7 : dimanche
2) La convention de numérotation des semaines est la suivante :
Une semaine commence un lundi, sauf pour le 01/01,
et dans ce cas :
- si le 01/01 est un "lundi", "mardi", "mercredi" ou "jeudi",
la semaine porte le numero "1"
- si le 01/01 est un "vendredi", "samedi" ou "dimanche",
la semaine porte le numero "0",
la semaine "1" commençant le "lundi" suivant le 01/01.
Cela est du au fait que l'on estime qu'il y a "existence"
d'une semaine si elle compte au moins 4 jours (> la moitié)
NB: Il peut y avoir parfois une semaine n° 53, dans le cas où le 01/01 est
un :
- Lundi, Mardi, Mercredi, Jeudi
- Dimanche si l'année est bissextile
(cas de 2012 p.ex.)
3) Détermination du n° du jour de la semaine du 1er janvier de l'année
concernée
NjsDebut=(int((annee-1901)/4) + (annee-1901)+2) mod 7
if NjsDebut=0 then NjsDebut=7
(le 01/01/1901 était un mardi)
Si NjsDebut<5 (Lundi à Jeudi)
- la semaine 1 commence le 01/01
et son 1er jour est un "JourDeLaSemaine(NjsDebut)"
Si NjsDebut>=5 (Vendredi à Dimanche)
- la semaine 0 commence le 01/01
et son 1er jour est un "JourDeLaSemaine(NjsDebut)"
- la semaine 1 commence le 01+(8-NjsDebut)/01
et son 1er jour est un Lundi
...
Voila ce que ça donne écrit en VBS (pour un test immédiat)
=========== couper ici ========== > '---------------------------------------------------------
'Calcul de la date dans l'année du 1er jour d'une semaine
'JCB © 2003
' Syntaxe :
' Week2Date <n° semaine> <année>
'---------------------------------------------------------
Set args = Wscript.Arguments
nbargs=args.count
If nbargs<2 Then
wscript.echo "Paramètres manquants"
wscript.quit
End If
NumSem=args(0)
Annee=args(1)
If not isnumeric(NumSem) or not isnumeric(Annee) Then
wscript.echo "Paramètres non numériques"
wscript.quit
End If
NumSem=cint(NumSem)
Annee=cint(Annee)
NjsDebut=(int((annee-1901)/4) + (annee-1901)+2) mod 7
if NjsDebut=0 then NjsDebut=7
If NjsDebut<5 Then NSmin=1 else NSmin=0
If NumSem<NSmin Then
wscript.echo "N° de semaine trop petit"
wscript.quit
End If
If NumSem=NSmin Then Nbj=1 Else Nbj=(NumSem-NSmin)*7-NjsDebut+2
NjMois=array(0,31,28,31,30,31,30,31,31,30,31,30,31)
NjAn65
if (annee mod 4)=0 then
NjAn66
NjMois(2))
end if
If NjAn-(53-NSmin)*7+NjsDebut-1>0 Then NSmaxS else NSmaxR
If NumSem>NSmax Then
wscript.echo "N° de semaine trop grand"
wscript.quit
End If
NumMois=1
Do
If Nbj<=NjMois(NumMois) Then exit do
Nbj=Nbj-NjMois(NumMois)
NumMois=NumMois+1
Loop Until NumMois>12
wscript.echo "1er jour de la semaine " & NumSem & " de l'année " & Annee &
: " & Nbj & "/" & NumMois
=========== couper ici ========== >
Exemples :
H:WSH>Week2Date.vbs 48 2003
1er jour de la semaine 48 de l'année 2003 : 24/11
H:WSH>Week2Date.vbs 49 2003
1er jour de la semaine 49 de l'année 2003 : 1/12
H:WSH>Week2Date.vbs 52 2003
1er jour de la semaine 52 de l'année 2003 : 22/12
H:WSH>Week2Date.vbs 53 2003
1er jour de la semaine 53 de l'année 2003 : 29/12
H:WSH>Week2Date.vbs 0 2000
1er jour de la semaine 0 de l'année 2000 : 1/1
(le 01/01/2000 était un samedi)
H:WSH>Week2Date.vbs 1 2000
1er jour de la semaine 1 de l'année 2000 : 3/1
H:WSH>Week2Date.vbs 0 2012
1er jour de la semaine 0 de l'année 2012 : 1/1
H:WSH>Week2Date.vbs 1 2012
1er jour de la semaine 1 de l'année 2012 : 2/1
H:WSH>Week2Date.vbs 53 2012
1er jour de la semaine 53 de l'année 2012 : 31/12
H:WSH>Week2Date.vbs 34 2013
1er jour de la semaine 34 de l'année 2013 : 19/8
....
NB: ce script ne fonctionne qu'entre 1901 et 2099
(à cause du calendrier grégorien qui rend non bissextiles les années
séculaires non divisibles par 400)
Bon, je pense qu'après 2099, on aura prévu autre chose comme script...;+)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
tche <tche@n.com> s'est ainsi exprimé:
> Bonjour,
> je voulais savoir si quelq'un connaissait une fonction permettant de
> convertir un numero de semaine plus une année en le prmier jour de
> cette semaine (cad un lundi)
> On passerait a la fonction le numero de semaine et l'année et elle
> renverrais JJ/MM
Çà se retrouve aisément
(même s'il faut faire attention aux histoires d'intervalles, cf. cours de
CM2!) :
1) La convention de numerotation des jours
dans la semaine est la suivante (en France) :
1 : lundi
2 : mardi
...
7 : dimanche
2) La convention de numérotation des semaines est la suivante :
Une semaine commence un lundi, sauf pour le 01/01,
et dans ce cas :
- si le 01/01 est un "lundi", "mardi", "mercredi" ou "jeudi",
la semaine porte le numero "1"
- si le 01/01 est un "vendredi", "samedi" ou "dimanche",
la semaine porte le numero "0",
la semaine "1" commençant le "lundi" suivant le 01/01.
Cela est du au fait que l'on estime qu'il y a "existence"
d'une semaine si elle compte au moins 4 jours (> la moitié)
NB: Il peut y avoir parfois une semaine n° 53, dans le cas où le 01/01 est
un :
- Lundi, Mardi, Mercredi, Jeudi
- Dimanche si l'année est bissextile
(cas de 2012 p.ex.)
3) Détermination du n° du jour de la semaine du 1er janvier de l'année
concernée
NjsDebut=(int((annee-1901)/4) + (annee-1901)+2) mod 7
if NjsDebut=0 then NjsDebut=7
(le 01/01/1901 était un mardi)
Si NjsDebut<5 (Lundi à Jeudi)
- la semaine 1 commence le 01/01
et son 1er jour est un "JourDeLaSemaine(NjsDebut)"
Si NjsDebut>=5 (Vendredi à Dimanche)
- la semaine 0 commence le 01/01
et son 1er jour est un "JourDeLaSemaine(NjsDebut)"
- la semaine 1 commence le 01+(8-NjsDebut)/01
et son 1er jour est un Lundi
...
Voila ce que ça donne écrit en VBS (pour un test immédiat)
=========== couper ici ========== > '---------------------------------------------------------
'Calcul de la date dans l'année du 1er jour d'une semaine
'JCB © 2003
' Syntaxe :
' Week2Date <n° semaine> <année>
'---------------------------------------------------------
Set args = Wscript.Arguments
nbargs=args.count
If nbargs<2 Then
wscript.echo "Paramètres manquants"
wscript.quit
End If
NumSem=args(0)
Annee=args(1)
If not isnumeric(NumSem) or not isnumeric(Annee) Then
wscript.echo "Paramètres non numériques"
wscript.quit
End If
NumSem=cint(NumSem)
Annee=cint(Annee)
NjsDebut=(int((annee-1901)/4) + (annee-1901)+2) mod 7
if NjsDebut=0 then NjsDebut=7
If NjsDebut<5 Then NSmin=1 else NSmin=0
If NumSem<NSmin Then
wscript.echo "N° de semaine trop petit"
wscript.quit
End If
If NumSem=NSmin Then Nbj=1 Else Nbj=(NumSem-NSmin)*7-NjsDebut+2
NjMois=array(0,31,28,31,30,31,30,31,31,30,31,30,31)
NjAn65
if (annee mod 4)=0 then
NjAn66
NjMois(2))
end if
If NjAn-(53-NSmin)*7+NjsDebut-1>0 Then NSmaxS else NSmaxR
If NumSem>NSmax Then
wscript.echo "N° de semaine trop grand"
wscript.quit
End If
NumMois=1
Do
If Nbj<=NjMois(NumMois) Then exit do
Nbj=Nbj-NjMois(NumMois)
NumMois=NumMois+1
Loop Until NumMois>12
wscript.echo "1er jour de la semaine " & NumSem & " de l'année " & Annee &
: " & Nbj & "/" & NumMois
=========== couper ici ========== >
Exemples :
H:WSH>Week2Date.vbs 48 2003
1er jour de la semaine 48 de l'année 2003 : 24/11
H:WSH>Week2Date.vbs 49 2003
1er jour de la semaine 49 de l'année 2003 : 1/12
H:WSH>Week2Date.vbs 52 2003
1er jour de la semaine 52 de l'année 2003 : 22/12
H:WSH>Week2Date.vbs 53 2003
1er jour de la semaine 53 de l'année 2003 : 29/12
H:WSH>Week2Date.vbs 0 2000
1er jour de la semaine 0 de l'année 2000 : 1/1
(le 01/01/2000 était un samedi)
H:WSH>Week2Date.vbs 1 2000
1er jour de la semaine 1 de l'année 2000 : 3/1
H:WSH>Week2Date.vbs 0 2012
1er jour de la semaine 0 de l'année 2012 : 1/1
H:WSH>Week2Date.vbs 1 2012
1er jour de la semaine 1 de l'année 2012 : 2/1
H:WSH>Week2Date.vbs 53 2012
1er jour de la semaine 53 de l'année 2012 : 31/12
H:WSH>Week2Date.vbs 34 2013
1er jour de la semaine 34 de l'année 2013 : 19/8
....
NB: ce script ne fonctionne qu'entre 1901 et 2099
(à cause du calendrier grégorien qui rend non bissextiles les années
séculaires non divisibles par 400)
Bon, je pense qu'après 2099, on aura prévu autre chose comme script...;+)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
tche s'est ainsi exprimé:
> Bonjour,
> je voulais savoir si quelq'un connaissait une fonction permettant de
> convertir un numero de semaine plus une année en le prmier jour de
> cette semaine (cad un lundi)
> On passerait a la fonction le numero de semaine et l'année et elle
> renverrais JJ/MM
Çà se retrouve aisément
(même s'il faut faire attention aux histoires d'intervalles, cf. cours de
CM2!) :
1) La convention de numerotation des jours
dans la semaine est la suivante (en France) :
1 : lundi
2 : mardi
...
7 : dimanche
2) La convention de numérotation des semaines est la suivante :
Une semaine commence un lundi, sauf pour le 01/01,
et dans ce cas :
- si le 01/01 est un "lundi", "mardi", "mercredi" ou "jeudi",
la semaine porte le numero "1"
- si le 01/01 est un "vendredi", "samedi" ou "dimanche",
la semaine porte le numero "0",
la semaine "1" commençant le "lundi" suivant le 01/01.
Cela est du au fait que l'on estime qu'il y a "existence"
d'une semaine si elle compte au moins 4 jours (> la moitié)
NB: Il peut y avoir parfois une semaine n° 53, dans le cas où le 01/01 est
un :
- Lundi, Mardi, Mercredi, Jeudi
- Dimanche si l'année est bissextile
(cas de 2012 p.ex.)
3) Détermination du n° du jour de la semaine du 1er janvier de l'année
concernée
NjsDebut=(int((annee-1901)/4) + (annee-1901)+2) mod 7
if NjsDebut=0 then NjsDebut=7
(le 01/01/1901 était un mardi)
Si NjsDebut<5 (Lundi à Jeudi)
- la semaine 1 commence le 01/01
et son 1er jour est un "JourDeLaSemaine(NjsDebut)"
Si NjsDebut>=5 (Vendredi à Dimanche)
- la semaine 0 commence le 01/01
et son 1er jour est un "JourDeLaSemaine(NjsDebut)"
- la semaine 1 commence le 01+(8-NjsDebut)/01
et son 1er jour est un Lundi
...
Voila ce que ça donne écrit en VBS (pour un test immédiat)
=========== couper ici ========== > '---------------------------------------------------------
'Calcul de la date dans l'année du 1er jour d'une semaine
'JCB © 2003
' Syntaxe :
' Week2Date <n° semaine> <année>
'---------------------------------------------------------
Set args = Wscript.Arguments
nbargs=args.count
If nbargs<2 Then
wscript.echo "Paramètres manquants"
wscript.quit
End If
NumSem=args(0)
Annee=args(1)
If not isnumeric(NumSem) or not isnumeric(Annee) Then
wscript.echo "Paramètres non numériques"
wscript.quit
End If
NumSem=cint(NumSem)
Annee=cint(Annee)
NjsDebut=(int((annee-1901)/4) + (annee-1901)+2) mod 7
if NjsDebut=0 then NjsDebut=7
If NjsDebut<5 Then NSmin=1 else NSmin=0
If NumSem<NSmin Then
wscript.echo "N° de semaine trop petit"
wscript.quit
End If
If NumSem=NSmin Then Nbj=1 Else Nbj=(NumSem-NSmin)*7-NjsDebut+2
NjMois=array(0,31,28,31,30,31,30,31,31,30,31,30,31)
NjAn65
if (annee mod 4)=0 then
NjAn66
NjMois(2))
end if
If NjAn-(53-NSmin)*7+NjsDebut-1>0 Then NSmaxS else NSmaxR
If NumSem>NSmax Then
wscript.echo "N° de semaine trop grand"
wscript.quit
End If
NumMois=1
Do
If Nbj<=NjMois(NumMois) Then exit do
Nbj=Nbj-NjMois(NumMois)
NumMois=NumMois+1
Loop Until NumMois>12
wscript.echo "1er jour de la semaine " & NumSem & " de l'année " & Annee &
: " & Nbj & "/" & NumMois
=========== couper ici ========== >
Exemples :
H:WSH>Week2Date.vbs 48 2003
1er jour de la semaine 48 de l'année 2003 : 24/11
H:WSH>Week2Date.vbs 49 2003
1er jour de la semaine 49 de l'année 2003 : 1/12
H:WSH>Week2Date.vbs 52 2003
1er jour de la semaine 52 de l'année 2003 : 22/12
H:WSH>Week2Date.vbs 53 2003
1er jour de la semaine 53 de l'année 2003 : 29/12
H:WSH>Week2Date.vbs 0 2000
1er jour de la semaine 0 de l'année 2000 : 1/1
(le 01/01/2000 était un samedi)
H:WSH>Week2Date.vbs 1 2000
1er jour de la semaine 1 de l'année 2000 : 3/1
H:WSH>Week2Date.vbs 0 2012
1er jour de la semaine 0 de l'année 2012 : 1/1
H:WSH>Week2Date.vbs 1 2012
1er jour de la semaine 1 de l'année 2012 : 2/1
H:WSH>Week2Date.vbs 53 2012
1er jour de la semaine 53 de l'année 2012 : 31/12
H:WSH>Week2Date.vbs 34 2013
1er jour de la semaine 34 de l'année 2013 : 19/8
....
NB: ce script ne fonctionne qu'entre 1901 et 2099
(à cause du calendrier grégorien qui rend non bissextiles les années
séculaires non divisibles par 400)
Bon, je pense qu'après 2099, on aura prévu autre chose comme script...;+)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de cette
semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de cette
semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
je voulais savoir si quelq'un connaissait une fonction permettant de
convertir un numero de semaine plus une année en le prmier jour de cette
semaine (cad un lundi)
On passerait a la fonction le numero de semaine et l'année et elle
renverrais JJ/MM
> Bonjour,
Merci beaucoup de votre reponse.
Je vais m'ateller à cette histoire de conversion
Bonne soirée.
> Bonjour,
Merci beaucoup de votre reponse.
Je vais m'ateller à cette histoire de conversion
Bonne soirée.
> Bonjour,
Merci beaucoup de votre reponse.
Je vais m'ateller à cette histoire de conversion
Bonne soirée.