RENVOI DU NUMÉRO DE SEMAINE (BOGUE DU 29 DÉCEMBRE 2003)

106 Messages postés 39 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 14 janvier 2008 - 4 févr. 2004 à 07:58
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 20 août 2007 à 04:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20083-renvoi-du-numero-de-semaine-bogue-du-29-decembre-2003

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 août 2007 à 04:18
http://www.codyx.org/snippet_calculer-numero-semaine-date_152.aspx


Y'a aussi une soluce (enfin, 2) ici ^^

@++
cs_kadertall Messages postés 3 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 1 août 2007
6 août 2007 à 13:17
svp, quelle est la bonne solution retenue?
fkuchta Messages postés 44 Date d'inscription jeudi 27 juin 2002 Statut Membre Dernière intervention 20 novembre 2008
18 avril 2006 à 09:33
Je suppose que la bogue a été résolue car avec ce code :

Dim JeudiSemaine As Date
Dim NumSemJeudi As Integer
Dim CetteDate As Date
CetteDate = "31/12/2007"
JeudiSemaine = CetteDate - Weekday(CetteDate, vbMonday) + vbThursday - 1
NumSemJeudi = CInt(Format(JeudiSemaine, "ww", vbMonday, vbFirstFourDays))
MsgBox NumSemJeudi & "-" & Weekday(CetteDate, vbMonday)

CetteDate = "29/12/2003"
JeudiSemaine = CetteDate - Weekday(CetteDate, vbMonday) + vbThursday - 1
NumSemJeudi = CInt(Format(JeudiSemaine, "ww", vbMonday, vbFirstFourDays))
MsgBox NumSemJeudi & "-" & Weekday(CetteDate, vbMonday)


J'obtiens toujours semaine 1 partout !!
Certainement un patch quelque part...
cs_buzzo Messages postés 29 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 30 novembre 2006
17 avril 2006 à 12:06
Merci beaucoup pour ce source !
JCDussDuss Messages postés 24 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 20 novembre 2008
12 déc. 2005 à 10:02
Bonjour,

Merci pour cette petite fonction 106, qui fonctionne parfaitement au moins jusqu'en 2015 (je me suis arreté là dans mes tests). Pour ceux qui auraient la flemme d'utiliser cette fonction car ils auraient des dates supérieurs à 2003, sachez que la fonction Format bogue pour le 29/12/2003 mais également pour le 31/12/2007, qu'elle trouve comme seul et unique jour de la semaine 53 (au lieu de 01).

Merci encore.

JC
cs_NoFutur Messages postés 171 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 1
21 mai 2004 à 16:39
Je me disais bien que j'avais écrit là ou il fallait pas :o)
fkuchta Messages postés 44 Date d'inscription jeudi 27 juin 2002 Statut Membre Dernière intervention 20 novembre 2008
21 mai 2004 à 16:37
Euh, excuse-moi, mais je ne vois pas l'intérêt : il s'agissait de trouver le numéro de semaine...
;-)
cs_NoFutur Messages postés 171 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 1
21 mai 2004 à 15:20
Et pour la date complète il y a aussi :
MsgBox Format("29/12/2003", "Long Date")

Ce qui nous donne au final:
Lundi 29 Décembre 2003
fkuchta Messages postés 44 Date d'inscription jeudi 27 juin 2002 Statut Membre Dernière intervention 20 novembre 2008
23 févr. 2004 à 10:03
J'aime beaucoup ce bricolage aussi.
Ahhh, VB quand tu nous tiens !
fkuchta Messages postés 44 Date d'inscription jeudi 27 juin 2002 Statut Membre Dernière intervention 20 novembre 2008
23 févr. 2004 à 08:55
J'aime beaucoup ce bricolage aussi.
Ahhh, VB quand tu nous tiens !
ailleolit Messages postés 2 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 22 février 2004
22 févr. 2004 à 14:23
Super, je cherchais comment resoudre mon probleme: c'est court,simple et efficace.
Merci
106 Messages postés 39 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 14 janvier 2008
4 févr. 2004 à 07:58
'J'ai eu le probleme
'Voila ma solution
'en utilisant weekday qui donne le jour de la semaine d'une date
' Ex : 29/12/2003 => Lundi

Public Function NumSemaine(CetteDate As Date)
Dim JeudiSemaine As Date
Dim NumSemJeudi As Integer

JeudiSemaine = CetteDate - Weekday(CetteDate, vbMonday) + vbThursday - 1

NumSemJeudi = CInt(Format(JeudiSemaine, "ww", vbMonday, vbFirstFourDays))

NumSemaine = NumSemJeudi
End Function
Rejoignez-nous