Delphi Xe, Win 7, System TimeZone UTC+4:0, 系统一周的第一天-星期一,时间与time.windows.com同步
在标准组件 Delphi Win32 的调色板中有组件 MonthCalendar,其属性 WeekNubers=true(显示周数),日期=现在,第一天 - 星期一。
显示在 19 号(今天) - 第 43 周。
我通过 dateutils.WeekOfTheYear(now) = 返回 42 请求编号。
源 (0.5 Mb) http://www.sendspace.com/file/yuz6ko
从组件 MonthCalendar 的初始代码来看 - 这一切都是真的(即使不公开一周的第一天,它也会从系统参数中获取价值)。
并且在查询 WeekOfTheYear 中被告知,所有这些都被认为也应用了标准 ISO,但数字不一致:(
无论如何,我都不会明白,一周会在哪里消失——如果看日历,应该是 43 周,如果要考虑,那一周是 53 周和去年的第一个问题......
顺便说一句,2011 年 1 月 1 日的 WeekOfTheYear 也返回 52,尽管应该返回 1...
为什么要区分,哪里是正确的?