什么是 ISO 周数?
ISO 8601 是一项国际标准,它规定了一种将全年周次从 1 编号到 52 或 53 的方法。在这套体系中,每周都从周一开始,而第 1 周是包含当年第一个周四的那一周(等价说法是包含 1 月 4 日的那一周)。正因为这条规则,1 月初的头几天可能被算进上一年的最后一周,而 12 月底的最后几天则可能被算进下一年的第 1 周。本工具所显示的「ISO 周历年」正是反映了这种跨年调整。需要说明的是,中国大陆日常生活中并不常用 ISO 周数,它更多出现在工业、物流、软件开发以及与欧洲企业对接的场景中。
如何使用本计算器
选择年、月、日,然后提交即可。计算器会返回 ISO 周数、该周所属的 ISO 周历年、序数日(即一年中的第几天),以及 ISO 星期值(周一为 1,依次到周日为 7)。
公式详解
核心计算公式为:
$$\text{Week} = \left\lfloor \dfrac{\text{ordinalDate} - \text{isoWeekday} + 10}{7} \right\rfloor$$
其中 序数日 表示该日期是一年中的第几天(1 月 1 日 = 1),ISO星期值 则是以周一为 1、周日为 7 的星期编号。加上 10 再除以 7,是为了将计数平移,使其符合「第一个周四」规则。如果计算结果小于 1,说明该日期属于上一年的最后一周(第 52 或第 53 周);如果结果为 53,但当年实际并没有第 53 周,则该日期归入下一年的第 1 周。
实例演算
以 2024 年 1 月 1 日 为例。这一天是周一,所以 ISO星期值 = 1;它又是当年的第一天,所以序数日 = 1。代入公式:$$\text{Week} = \left\lfloor \frac{1 - 1 + 10}{7} \right\rfloor = \left\lfloor \frac{10}{7} \right\rfloor = \lfloor 1.43 \rfloor = 1$$。因此 2024 年 1 月 1 日属于 2024 年的 ISO 第 1 周。
常见问题
一年会有 53 周吗?会的。以周四开头的年份,以及以周三开头的闰年,都包含 53 个 ISO 周。
为什么 1 月 1 日有时会显示第 52 或第 53 周?因为 ISO 周固定从周一开始,而第 1 周必须包含当年第一个周四,所以 1 月初的某些日期仍可能归属于上一年的 ISO 周历年。
这和我电子表格里的「年度第几周」是一回事吗?不一定。许多工具把包含 1 月 1 日的那一周当作第 1 周,并且以周日作为每周起点。本计算器采用的是更严格的 ISO 8601 定义,因此结果可能不同。