Jag håller på med en kalender och har upptäckt ett konstig fel när jag försöker plocka fram respektive vecka. Det är faktiskt så att vissa år har 53 veckor, så det är inget fel. Jo det är ett fel, 2003 har ingen vecka 53, däremot har 2004 det. Vecka 1 på ett år är den vecka som har minst 4 dagar med datum på det nya året. Veckan 29/12 2003 - 4/1 2004 är således vecka 1 då det är första veckan som innehåller 4 dagar av det nya året. Tusen tack!!konstigt veckonummer fel
Måndagen den 29/12-2003 borde resultera med vecka 1 men det blir vecka 53!
<code>
DatePart("ww",#2003-12-29#,2,1)
</code>
använder jag istället konstantenerna 2,0 och flyttar fram datumet till tisdagen den 30/12-2003 så blir det rätt...men det ju fel startdag för veckan.
<code>
DatePart("ww",#2003-12-30#,2,0)
</code>
Finns det någon förklaring till varför det blir så här?? Hur ska jag få fram att den 29/12-2003 tillhör vecka 1 och inget annat. Eller är det bara jag som tänker fel?
Tacksam för svar.
Mvh THSv: konstigt veckonummer fel
Ha det/Sv: konstigt veckonummer fel
Felet är en känd bug i Datepart funktionen som finns omnämnd här
http://support.microsoft.com:80/support/kb/articles/q200/2/99.asp&NoWebContent=1&NoWebContent=1
En lösning som näms i BUG-rapproten är att göra en egen week-of-year funktion.
<code>
Function WOY (MyDate As Date) As Integer ' Week Of Year
WOY = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If WOY > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then WOY = 1
End If
End Function
</code>
//
Janne.Sv: konstigt veckonummer fel
Skönt att höra att det var en Bugg och inte jag som tänkte fel ;-) Funktionen kommer
användas flitigt...
Mvh Therese