从我的角度来看,以下代码无法正常工作:
date = Date.parse('2012-12-31')
# => Mon, 31 Dec 2012
date.cweek
# => 1
再测试一下,我发现星期四是转折点,这意味着如果一周中的大多数日子都在当年,则该星期要计入当年,否则将是下一年。
date = Date.parse('2014-12-31')
# => Wed, 31 Dec 2014
date.cweek
# => 1
date = Date.parse('2015-12-31')
# => Thu, 31 Dec 2015
date.cweek
# => 53
既然是一年的最后一天,它不应该返回53吗? 2012年是leap年这一事实有什么不同吗?
我面临的问题是,我正在尝试为数据分析师生成周数,他们认为2012-12-31
是2012年的最后一周(53)。
知道这个Ruby逻辑是某种标准还是算术中间逻辑?
我试图寻找一些说明这种现象的官方文档,但没有找到任何文档。