ISO 周数计算器

输入一个准确日期,获取它的 ISO 周标签、ISO 周年以及周一到周日的范围,适合工时表、冲刺计划和交付排期。

计算方式

公式

isoWeekday=((weekday06+6)mod7)+1\text{isoWeekday} = ((\text{weekday}_{0-6} + 6) \bmod 7) + 1

isoWeekYear=year(date+(4isoWeekday) days)\text{isoWeekYear} = \text{year}(\text{date} + (4 - \text{isoWeekday})\text{ days})

isoWeekNumber=1+weekStartweek1Start7 days\text{isoWeekNumber} = 1 + \left\lfloor \dfrac{\text{weekStart} - \text{week1Start}}{7\text{ days}} \right\rfloor

变量、符号和单位

isoWeekday\text{isoWeekday}

ISO 星期编号,其中周一 = 1,周日 = 7

weekday06\text{weekday}_{0-6}

公历星期索引,其中周日 = 0,周六 = 6

weekStart\text{weekStart}

输入日期所在 ISO 周开始周一的 UTC 日期

week1Start\text{week1Start}

解析出的 ISO 周年第 1 周开始周一的 UTC 日期
计算方法说明

输入一个准确日期,计算器只应用 ISO 8601 周规则。主结果显示 ISO 周标签,辅助行显示 ISO 周年以及准确的周一到周日边界,便于计划和报表直接使用。

ISO 周查找:

  1. 严格把输入值解析为一个 ISO 日历日期。
  2. 将公历星期转换为 ISO 星期编号,其中周一 = 1,周日 = 7。
  3. 把该日期移动到同一 ISO 周的周四。这个周四的公历年份就是 ISO 周年。
  4. 找出该 ISO 周年第 1 周的开始周一。ISO 第 1 周是包含 1 月 4 日 / 第一个周四的周一到周日那一周。
  5. 从第 1 周锚点到输入日期所在周的周一,计算完整周数得到 ISO 周数。
  6. 返回最终 ISO 周标签,以及该 ISO 周准确的周一和周日日期。

常见问题

计算器如何确定 ISO 周年?
它严格遵循 ISO 8601。计算器先得到 ISO 星期编号,把日期移动到同一周的周四,再用这个周四所在的公历年份确定 ISO 周年。
为什么 1 月 1 日可能属于上一 ISO 周年?
因为 ISO 第 1 周是包含 1 月 4 日的那一周,也常说是包含第一个周四的那一周。如果 1 月 1 日落在这个锚定周之前,它就留在上一 ISO 周年。
为什么 12 月 31 日可能属于下一 ISO 周年?
同一规则反向适用。如果包含 12 月 31 日的周一到周日这一周也包含下一年的 1 月 4 日或第一个周四,那么整周就是下一 ISO 周年的第 1 周。
这会遵循本地工作周、工资或节假日规则吗?
不会。此计算器只使用 ISO 周规则:周一开始,ISO 星期编号为 1-7,并以 1 月 4 日 / 第一个周四定义第 1 周。
它和星期几、日期加减、工作日计算器有什么不同?
这个页面只回答一个问题:一个准确日期属于哪一个 ISO 周。星期几工具给日期贴星期标签,日期加减工具转换日期,工作日计算器统计一个范围内的日期。

相关计算器

所有计算器

准备开始计算?

免费计算器。