Försöker mig på funktionen veckonummer i vb men blir inte klok på den Jag har upptäckt exakt samma sak, om du kollar andra år så ser du att det stämmer. Hej Så här skall Ni skriva Så här blir resultatet av veckofunktionen i vb Hej, Kanon Emma. Detta är en känd bug i DatePart funktionen och den finn omskriven här,Vecka nr 53 ?
Veckanr = DatePart("ww", "2003-12-29", [vbMonday], [vbFirstFourDays])
Om jag kör ovanstående får jag vecka 53 vilket är fel eftersom om man läser i kalendern så är det vecka 1
Eller så har jag fattat helt fel om vår svenska kalender, (troligen för datorer kan inte ha fel)
Någon som har något tipps om vad som är fel, jag eller programmet ?Sv: Vecka nr 53 ?
Det verkar bara vara 2003 som felar på de sista dagarna och ger vecka 53.
Kanske är en bugg?Sv: Vecka nr 53 ?
Veckanr = DatePart("ww", "2003-12-29", vbUseSystemDayOfWeek, vbUseSystem)
Edit Wooops : man skall alltid kolla det blev samma resultat.
Det var jättelurigt hur är det ? torsdag skall vara med för att det
skall bli 53 ?
Kollade mitt uppskick Programarkivet:038 och då blir 2003 v53 må 29/12
Och testar jag så blir det samma 2004 v 1 må 29/12
/SvenSv: Vecka nr 53 ?
Datum Vecka
------------------------
2003-12-25 52 Tors
2003-12-26 52 Fre
2003-12-27 52 Lör
2003-12-28 52 Sön
2003-12-29 53 Mån <--OBS vecka 53
2003-12-30 01 Tis
2003-12-31 01 Ons
2004-01-01 01 Tors
Får bli en ful if om jag skall fixa detta utan att bygga en egen veckonummerfunktion
tex
If Datum = "2003-12-29" Then
Veckonr = 1
Else
Veckonr = DatePart("ww", Datum, vbUseSystemDayOfWeek, vbUseSystem)
End If
Övriga datum närmaste 10 åren verkar fungera.
Om ni från Microsoft är här på forumet så är detta något at ta med hem.
Kan bli problem i MPS system mm som verkligen behöver riktiga veckonummer.
Mitt system är hittills bara tänkt för Sverige så en ful If går nog.Sv: Vecka nr 53 ?
Det är så att datepart-funktionen har en bugg, och inträffar med ett visst intervall, när
det som ni har upptäckt, blir vecka 53 istället för 1. Om inte jag missminner mig ska
jag ha lagt upp kod för det tidigare. Kolla under tips och tricks, tip nr 1081, går bra
att söka på datepart.
/EmmaSv: Vecka nr 53 ?
Använder nu ditt tipps.
Fungerar klockrent.
Bugar och tackar för hjälpen.Sv: Vecka nr 53 ?
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B200299
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B200299
Bl a annat finns där nedanstående funktion som en "workaround"
<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>