周数计算器(ISO 8601)
输入任意日期,得到它的 ISO 周数、星期几、本周起止日期、年内第几天与所属季度;也可切换到反向模式,用「年份 + 周数 + 星期几」查出具体日期。
项目排期按周报、欧洲客户订单写 W38、敏捷迭代按 Sprint 周数——周数有两套口径:ISO 8601(国际标准,欧洲通行)与北美习惯(周日开头、1 月 1 日所在周为第 1 周),同一日期可能差一周。本工具按 ISO 8601 计算:周数、星期几、本周起止、年内第几天与季度,也支持「年 + 周 + 星期」反查日期。
ISO 口径要点:周一为一周开始;第 1 周是「包含第一个星期四的那周」——所以 12 月底的日子可能属于下一年的第 1 周,1 月初的日子可能属于上一年的最后一周(如 2027-01-01 属于 2026 年第 53 周)。与欧美同事对周数时先确认双方都用 ISO。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 输入日期,看 ISO 周数、星期几、本周起止。
- 看年内第几天与所属季度,写周报直接引用。
- 反向模式:填年份 + 周数 + 星期几,查出具体日期。
- 与北美同事对周数时注意口径差异(ISO 周一开头)。
计算原理与示例
ISO 周数的定义
ISO 8601 规定:一周从周一开始,含当年第一个星期四的那一周为第 1 周(等价于含 1 月 4 日)。这样定义的目的是让「第 N 周」在各国、各系统间一致,避免出现「同一天在不同国家算不同周」的混乱。于是 2026-09-13(周日)属于 2026 年第 37 周,该周从 2026-09-07(周一)到 09-13(周日)。
跨年归属是怎么产生的
因为第 1 周必须包含星期四,元旦前后常出现跨年归属:2026-01-01(周四)属 2026 年第 1 周,而它所在的这一周从 2025-12-29 就开始了;反过来,2024-12-30(周一)虽然还在 2024 年,却属于 2025 年第 1 周。写周报、排生产计划时如果不注意这一点,很容易把跨年那几天归错年份。
一年会不会有 53 周
一年有 52 周加 1 天(平年)或 2 天(闰年),当这多出来的 1~2 天落在周四及以后时,该年就会有第 53 周。ISO 规定有 53 周的年份称为「长年」,大约每 5~6 年出现一次。2026 年就有第 53 周(2026-12-28 至 2027-01-03),而 2025 年没有。
代码示例
JavaScript ISO 周数算法
function isoWeek(d) {
const t = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
const day = t.getUTCDay() || 7; // 周日算 7
t.setUTCDate(t.getUTCDate() + 4 - day); // 移到本周周四
const yearStart = new Date(Date.UTC(t.getUTCFullYear(), 0, 1));
return {
year: t.getUTCFullYear(),
week: Math.ceil(((t - yearStart) / 86400000 + 1) / 7)
};
}
isoWeek(new Date(2027, 0, 1)); // { year: 2026, week: 53 }
Python isocalendar 一行搞定
from datetime import date
d = date(2027, 1, 1)
d.isocalendar() # (2026, 53, 5) → 2026 年第 53 周周五
# 反查:年份 + 周数 + 星期 → 日期
from datetime import timedelta
iso = date(2026, 1, 4) # 该年第一个周四所在周的周四
date.fromisocalendar(2026, 53, 5) # 2026-12-31
常见问题
ISO 周数和日历上的周数有什么区别?
区别在起点与第 1 周的定义。ISO 周固定从周一开始;第 1 周是含当年第一个星期四的那一周(等价于含 1 月 4 日)。所以 1 月初的几天可能被算作上一年的最后一周,这与「1 月 1 日就是第 1 周」的直觉不同。
为什么 1 月 1 日可能属于上一年?
如果 1 月 1 日落在周五、周六或周日,它所在的这一周没有包含星期四,按 ISO 规则就归入上一年最后一周。例如 2027-01-01 是周五,它属于 2026 年第 53 周,而不是 2027 年第 1 周。
一年一定有 53 周吗?
不是。平年 365 天 = 52 周 + 1 天,闰年 366 天 = 52 周 + 2 天。当这多出的 1~2 天包含星期四时,该年就会产生第 53 周。2026 年有第 53 周,2025 年和 2027 年都没有。
怎么快速知道今天是今年的第几周?
直接输入今天的日期即可,结果里的「本年第几天」也会一起给出。若你用的是周报系统,注意它可能采用「1 月 1 日为第 1 周」的非 ISO 口径,两者在跨年那几周会相差 1。
周报按 ISO 周编号会不会对不上?
要确认团队用哪个口径。ISO 周下,年初几天可能属于上一年的第 52/53 周,年末几天可能属于下一年的第 1 周;如果团队习惯「1 月 1 日开新周」,两套编号在跨年时会错开一周。本工具提供 ISO 口径,可用来核对系统生成的周号。
反查日期时「星期几」怎么选?
按需要填:查周报开始日选周一,查周末的截止日选周日。默认周一。如果某个年份没有第 53 周而你输入了 53,工具会按 ISO 规则把它顺延到次年并提示「该年无此周,已落到来年」,避免静默给出错误日期。
周数计算和时区有关吗?
本工具按你输入的日期字符串计算,不涉及时区转换。但如果你在跨时区的分布式系统里用「当前时刻」算周数,要注意服务器时区不同可能导致同一瞬间落在不同的日期,进而落到不同周。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。