Ruby`cweek`返回1而不是53

时间:2019-01-24 13:17:02

标签: ruby

从我的角度来看,以下代码无法正常工作:

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逻辑是某种标准还是算术中间逻辑?

我试图寻找一些说明这种现象的官方文档,但没有找到任何文档。

0 个答案:

没有答案