【发布时间】:2021-10-31 12:57:08
【问题描述】:
我正在尝试编写一个函数来查找一年中的 ISO 周。我找到了关于它的ISO Week Wiki Page,其中包含这个算法:
woy = (10 + doy − dow) div 7
它在大多数情况下都有效,但我有两个问题,不知道如何解决它。
问题 1)第 53 周确实应该是第 1 周。(即 20191230 到 20191231)作为第 53 周出现,但应该是第 1 周。
问题 2) 闰年第 53 周。 (即 20210101 到 20210103)作为第 0 周发布,但应该是第 53 周。
是否有一种干净的方法来更改/添加到该公式以解决上述问题?
【问题讨论】:
-
您有哪些可用的输入?只有一年中的一天和一周中的一天?或者您是否有逻辑添加一天或多天的日期?或者,您的编程环境是什么,输入是什么(日期对象?序列号?日期部分的单独值,...)?公式的简单性取决于此。
标签: algorithm time iso iso8601 week-number