Jeg skal til at regne på nogle ugenr...det er sådan at jeg skal regne på ugenr i forhold til et dato som er 01-01-1900. dvs antalet af uger der er gået siden 01-01-1900...
min procedure ser således ud:
dim ValueYearFrom as date ValueYearFrom = "01-01-2006"
If ValueYearFrom <> 0 Then dtmStartDato = DateSerial(1900, 1, 1) a = (Fix(DateDiff("d", dtmStartDato, ValueYearFrom) / 7)) End If
jeg får resultate 5533 uger er det rigtigt ?? jeg bliver lidt i tvivl når man begynder at snakke om hvornår ugen starter i året og antalet af uger i de forskellige år ? er det regnet med her i vb funktionerne ?
Sub tst() Dim Fra As Date Dim Til As Date Dim Msg Fra = InputBox("Fra dato ") Til = InputBox("Til dato ") Msg = "Antal uger : " & DateDiff("ww", Fra, Til, vbMonday, vbUseSystem): MsgBox Msg '1 ugedag=mandag Msg = "Antal uger : " & DateDiff("ww", Fra, Til, vbSunday, vbUseSystem): MsgBox Msg '1 ugedag=søndag
Det kan også gøres sådan, fordi netop 1-1-1900 er første dag i VB's datosystem og da der tælles op herfra. Dvs at "01-01-2006" er dag 38718. Idet dag 1 er en lørdag og uger normalt regnes fra mandag trækkes to dage fra din dato (vbMonday = 2) og der heltalsdelen af dette divideret med 7 findes
Dim ValueYearFrom As Date ValueYearFrom = "01-01-2006" If ValueYearFrom <> 0 Then a = (ValueYearFrom - vbMonday) \ 7 end If
OBS Her er tale om europæriske uger, hvor uge 1 er den første uge der undeholder en torsdag. (ISO-norm) Ved amerikanske uger lægges 1 til resultatat, som er (ISO) 5530
bla bla og røven den går... brug denne function... den er indstillet til europæisk og slt det de andre snakker om:
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
Function AntalUger(år, uge) Dim UgensDato As Date UgensDato = DateSerial(år, 1, 7 * uge - 3 - Weekday(DateSerial(år, 0, 0), 3)) AntalUger = (UgensDato - vbMonday) \ 7 End Function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.