Rekenen met weeknummers

Status
Niet open voor verdere reacties.

Henk Benter

Gebruiker
Lid geworden
13 mei 2010
Berichten
158
In een veld heb ik 1709 (jaar + week) staan. In een ander veld heb ik 1649 (jaar + week) staan. Ik wil het verschil in weken berekenen. De beide velden zijn getalvelden. Nu is de uitkomst van (1709 -/- 1649) 60 weken. De uitkomst zou eigenlijk 12 weken moeten zijn. Wat is de snelste methode om dit op te lossen.
 
Heb je de oorspronkelijke datums dan niet meer in de tabel staan? Want dat weeknummer moet toch ook ergens vandaan komen? Anders moet je eerst de nummers terugvertalen en daarmee rekenen. Dan krijg je zoiets:
Code:
Sub testje()
    MsgBox DateDiff("ww", Week2Date("1649"), Week2Date("1709"), vbUseSystemDayOfWeek, vbFirstFourDays)
End Sub
Code:
Public Function Week2Date(WeekNo As Long) As Date
Dim Jan1 As Date, Wk As Integer, Yr As Integer
Dim Sub1 As Boolean
Dim Ret As Date
    Yr = CInt(Left(WeekNo, 2)) + 2000
    Wk = CInt(Right(WeekNo, 2))
    Jan1 = DateSerial(Yr, 1, 1)
    Sub1 = (Format(Jan1, "ww", vbUseSystemDayOfWeek, vbFirstFourDays) = 1)
    Ret = DateAdd("ww", Wk + Sub1, Jan1)
    Ret = Ret - Weekday(Ret) + 7
    Week2Date = Ret
End Function
Overigens kom ik dan op 13 uit, en niet op 12 :). Maar dat heeft misschien te maken met de manier waarop DateDiff werkt. Dan moet je van de berekening nog 1 aftrekken.
 
Lijkt mij niet eenvoudig. Deze nog gevonden.
 
@senso: je weet dat dit het Access forum is? En dat Access geen Weeknummer functie heeft zoals Excel? Ik ben benieuwd naar jou simpelere Access oplossing :).
 
Oeps, door de mand gevallen...:o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan