我正在尝试编写一个函数,以找到一年中ISO周。我找到了关于它的ISO周Wiki页面,其中包括了这个算法:
woy = (10 + doy − dow) div 7它大部分工作,但我有两个问题,不知道如何解决它。
问题1)第53周--实际上应该是第1周。(即20191230至20191231周)--作为第53周,但应该是第1周。
第二期)第53周的飞跃年。(即20210101到20210103)它们将作为第0周出现,但应该是第53周。
是否有一种干净的方法来改变/增加这个公式来解释上述问题?
发布于 2021-09-02 09:50:40
维基百科引用的文章确实包含了这些边界案例的说明:

这里的缺点是您仍然需要一个函数weeks。如果您没有那么容易获得,那么下面是另一种方法:
dow现在(星期四)总是4,所以公式简化为(6 + doy) div 7让我们在给出的示例中使用此方法:
doy为2,公式(6 + doy) div 7给出1作为结果。doy是366,公式(6 + doy) div 7给出的结果是53。https://stackoverflow.com/questions/69023651
复制相似问题