Access weeknummer op zondag laten beginnen

Status
Niet open voor verdere reacties.

Mark Boerkamp

Gebruiker
Lid geworden
13 mrt 2010
Berichten
70
Hoi,

Ik gebruik deze code om de dag van de week te bepalen, de eerste dag van de week valt nu op maandag.

Code:
Public Function IsoWeekNumber(d1 As Date) As Integer
' Attributed to Daniel Maher
    Dim d2 As Long
    d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
    IsoWeekNumber = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function

Hoe kan ik deze aanpassen zodat de eerste dag van de week op zondag valt ?

Groeten,
Mark
 
Volgens mij gebruik je Weekday al vanaf de zondag. De code WeekDay(Date) gebruikt namelijk standaard Zondag, pas als je een parameter meegeeft wordt er naar een andere dag gekeken. In jouw code zou ik dus Weekday(d2,2) of Weekday(d2, vbMonday) verwachten om de eerste werkdag op maandag te zetten.
 
Als je iets bedoelt dat je de berekening vanuit de Functie op zondag wilt laten beginnen i.p.v. maandag, dan moet je de code zo aanpassen:
Code:
    d2 = DateSerial(Year(d1 - WeekDay(d1) + 4), 1, 3)
    IsoWeekNumber = Int((d1 - d2 + WeekDay(d2) + 5) / 7)
 
Hoi OctaFish,

Bedankt voor je reactie, je was me net voor om te reageren.

Ik had de deze regel aangepast Int((d1 - d2 + Weekday(d2) + 6)

Code:
Public Function IsoWeekNumber(d1 As Date) As Integer
' Attributed to Daniel Maher
    Dim d2 As Long
    d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
    IsoWeekNumber = Int((d1 - d2 + Weekday(d2) + 6) / 7)
End Function

Groeten Mark
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan