Public Function ISO_WeekCount( _
ByVal datYear As Date) _
As Byte
' Calculates number of weeks in year of datYear according to the ISO 8601:1988 standard.
'
' May be freely used and distributed.
' 2001-06-26. Gustav Brock, Cactus Data ApS, CPH
Dim bytISO_Thursday As Byte
' No special error handling.
On Error Resume Next
bytISO_Thursday = Weekday(vbThursday, vbMonday)
datYear = DateSerial(Year(datYear), 12, 31)
' Subtract one week if datYear is in week no. 1 of next year.
datYear = DateAdd("ww", Weekday(datYear, vbMonday) < bytISO_Thursday, datYear)
ISO_WeekCount = DatePart("ww", datYear, vbMonday, vbFirstFourDays)
End Function
/gustav