trouver intervale de dates d'un n° de semaine pour une année x - ASP - Programmation
Marsh Posté le 15-01-2008 à 10:31:19
ca m'interresse aussi, merci pour ceux qui ont la reponse.
Marsh Posté le 15-01-2008 à 11:43:21
Petit exemple en C#.
(Le calendrier est afficher à des fins de contrôle uniquement)
Code :
|
Ce code est lancé lorsque je change la valeur d'une des deux listes numériques. La première correspond au numéro de semaine, et la seconde à l'année.
Attention, les règles des semaines sont spécifiques à la culture du poste client, attention donc à passer les paramètres correctement (ici, je reprend la locale utilisé par le programme, ce qui n'est pas aussi simple à faire en VB6).
L'algo n'est pas parfait, car pour la première semaine de l'année, au lieu de commencer au lundi, il commence au 1° janvier. Il faut donc ajouter une verrue pour gérer ce cas spécifique.
Marsh Posté le 15-01-2008 à 15:22:34
merci mais j'ai trouvé. C'est un petit code tout simple qui fonctionne parfaitement (en ASP donc).
il donne la date du premier lundi associé au numero de semaine: (A partir de la on peut facilement faire une periode):
Function DateLundi(Sem, Annee)
'Retrouve la date suivant une semaine demandée
'Trouve la position du lundi de la premiere semaine de l'année
'ensuite on le soustrait avec le nb de semaine converti en jour
X = (Sem * 7) - (Weekday("01/01/" & Annee, vbMonday) + 6)
'Decale le premier jour de l'annee avec la valeur qu'on a trouvé
DateLundi = DateAdd("d", X, "01/01/" & Annee)
End Function
Marsh Posté le 15-01-2008 à 15:58:35
fait gaffe au différentes façon de récupérer la semaine de l'année.
en effet, en europe, c'est la première semaine d'au moins 4 jours qui est la semaine 1.
ainsi, le 01/01 peut être dans la semaine 52.
teste ce cas, ton code marche peut-être, mais c'est un cas à prendre en compte dans tes tests
Marsh Posté le 13-01-2006 à 16:15:29
bonjour
comment a part d'un n° de semaine et du nombre de l'année
je peux trouver de quelle date a quelle date se deroule la semaine
ex:
semaine : 3
année : 2005
resultat: semaine du 03/03/2005 au 10/03/2005
merci