Jomba
Messages postés58Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention22 juillet 2010
-
16 janv. 2008 à 12:02
Jomba
Messages postés58Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention22 juillet 2010
-
16 janv. 2008 à 14:24
bonjour,
j'utilise dans un de mes programmes la fonction datepart :
Dim
test AsInteger
test = DatePart(DateInterval.WeekOfYear, CDate("31/12/2007"), Microsoft.VisualBasic.FirstDayOfWeek.Monday, Microsoft.VisualBasic.FirstWeekOfYear.FirstFourDays)
Dans le test que je vous ai copié ci-dessus, j'ai la date du 31 dé&cembre 2007 dont je cherche à récupérer le numéro de semaine : elle me ressort semaine 53 au lieu de 1 (1ère semaine de 2008).
Pourtant, j'ai bien spécifé "
FirstFourDays".
Est-ce un bug de la fonction ou un paramétrage raté ou ...?
Ca fait 2 ans que j'utilise cette fonction sans problème à part ça...
Jomba
Messages postés58Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention22 juillet 2010 16 janv. 2008 à 14:16
je vous remercie de vos réponses mais ce que je voulais savoir, c'était surtout si c'était moi ou vb.net2005 qui faisait une erreur. Et apparement, c'est vb.
J'ai résolu mon problème en positionnant ma date sur le jeudi, ainsi, ça marche à tous les coups, quelle que soit la date donnée.
NHenry
Messages postés15070Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 9 juin 2023158 16 janv. 2008 à 12:17
Bonjour
VB doit (je pense) remettre son compteur à "0" lors du changement d'année, il est facile d'éviter d'avoir la semaine 53 :
test = DatePart(DateInterval.WeekOfYear, CDate("31/12/2007"), Microsoft.VisualBasic.FirstDayOfWeek.Monday, Microsoft.VisualBasic.FirstWeekOfYear.FirstFourDays) mod 53
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201826 16 janv. 2008 à 13:57
Bonjour à tous,
Effectivement le DatePart renvoie semaine 53.
Alternative à adapter pour .Net :
MsgBox JoursDeLaSemaine1(2008)
Public Function JoursDeLaSemaine1(annee)
Dim d, i, MaSemaine
d = DateSerial(annee, 1, 1)
' calcul du premier jour de la première semaine de l'année
d = DateAdd("d", 1 - Weekday(d, vbMonday), d)
MaSemaine = "Jours de la semaine 1" &vbcr
For i =0 To 6
MaSemaine = MaSemaine &vbCr& DateAdd("d", i, d)
Next
JoursDeLaSemaine1 = MaSemaine
End Function