计算特定年份的总周数 - ISO 8601 - VBA Access

Nic*_*las 1 ms-access vba date iso8601

多看几次这个问题,但似乎无法在我的VBA代码中修复它.

我需要计算给定年份的总周数,符合ISO 8601.

当我使用datediff函数时:iNumWeeks = DateDiff("ww", "1/1/2015", "31/12/2015", vbMonday, vbFirstJan1)它返回52而2015年有53周(ISO 8601)

我怎么能这样做?

And*_*dre 8

再次引用自https://en.wikipedia.org/wiki/ISO_8601#Week_dates

12月28日总是在同一年的最后一周.

所以它真的很简单

Public Function WeeksInYear(lYear As Long) As Long

    WeeksInYear = DatePart("ww", DateSerial(lYear, 12, 28), vbMonday, vbFirstFourDays)

End Function
Run Code Online (Sandbox Code Playgroud)