Suite à une demande sur le forum, voici un petit script qui permet de retourner le premier jour de chaque semaine en fonction du numéro de semaine et de l'année, parfois utile pour des réservations ...
Attention ce script part de la norme de numérotation des semaines qui veut que la première semaine de l'année commence le premier lundi de l'année !
[edit] Un membre de devloppez m'ayant fait parvenir cette info:
Je rectifie le code comme suit :' Recommandations de l'Organisation Internationale de Standardisation
' Norme ISO 8601
' - Le lundi est considéré comme le premier jour de la semaine.
' - Les semaines d'une même année sont numérotées de 01 à 52
' (parfois 53).
' - La semaine qui porte le numéro 01 est celle qui contient le
' premier jeudi de janvier.
' - Il peut exister une semaine n°53 (années communes finissant
' un jeudi, bissextiles finissant un jeudi ou un vendredi).
Ainsi le premier lundi de la semaine 01 de 2009 etait en fait le lundi 29 décembre 2008
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <script type="text/javascript"> function FirstDayOfWeek(sem, an){ var debut=new Date() debut.setUTCFullYear(an,0,1); var FirstDayOfYear= debut.getDay() var FirstBitLength=0 if (FirstDayOfYear>4){ FirstBitLength= 8-FirstDayOfYear } else { FirstBitLength= FirstDayOfYear-7 } adddays=(sem-1)*7+FirstBitLength+1 finalDate=new Date() finalDate.setFullYear(an,0,adddays) finalDateEnd=new Date() finalDateEnd.setFullYear(an,0,adddays+6) return (sem==0 || sem>53)?"erreur":"debut de semaine :\t"+finalDate.toLocaleString()+"\nfin de semaine :\t" +finalDateEnd.toLocaleString(); } alert(FirstDayOfWeek(7, 2009)) </script>
A noter qu'ici la fonction retourne un string mais on peut lui faire retourner une date
Partager