第几周
今天是第几周?查询任意日期的 ISO 周数或任意一周的日期,并查看带周数的全年日历。
周数
| 周 | 开始 | 结束 |
|---|
如何查询周数
- 顶部的框显示今天的周数、本周从周一到周日的日期范围,以及今年还剩多少周。
- 要查询其他日子所在的周,在日期中选择它。下方会显示周数、这一周的七天、一年中的第几天以及本月第几周。
- 反过来,在右侧输入年份和周数,或用箭头逐周切换。结果会显示这一周的周一和周日。
- 向下滚动可以看到每行都标有周数的全年日历,也可以切换到列表,把每周的开始和结束日期复制为 CSV。用顶部的按钮可以在 ISO、美国和周六开始三种周制之间切换。
ISO 周数是怎样计算的
中国、欧洲大部分国家和国际商务通常按 ISO 8601 标准计算周数。它的规则很简单:每周总是从周一开始、周日结束,第 1 周是包含当年第一个星期四的那一周。换句话说,第 1 周就是包含 1 月 4 日的那一周,也就是新年里至少有四天的第一周。因此每一周都只属于一个年份,不存在半周。
周年:1 月 1 日在第 52 或 53 周时
因为周不会被拆开,1 月的头几天可能属于上一年的最后一周,12 月的最后几天也可能属于下一年的第 1 周。ISO 把一周所属的年份称为周年。例如,2027 年 1 月 1 日(周五)属于 2026 年第 53 周,而 2025 年 12 月 29 日(周一)已经是 2026 年第 1 周的开始。周年与日历年不同时,工具会提示你。按 ISO 记法,一周写作 2026-W44,某一天写作 2026-W44-6,最后一位数字是星期几,从 1(周一)到 7(周日)。
一年有 52 周还是 53 周?
ISO 年通常有 52 周;如果这一年从星期四开始,或者是从星期三开始的闰年,就有 53 周。这种情况大约每五六年出现一次:2026 年有 53 周,接下来是 2032 年和 2037 年。按周计算的工资、生产计划和课程表都需要考虑这多出来的一周。
美国和中东的周数
美国、加拿大和日本通常把周日作为一周的开始,并把包含 1 月 1 日的那一周算作第 1 周,即使新年在这一周里只有一天。一些中东国家使用同样的规则,但每周从周六开始。对同一天,这些周制得出的周数可能与 ISO 不同,通常多一周;在这个工具中,12 月的最后几天会像印刷的日历一样归入下一年的第 1 周。Excel 的 WEEKNUM 函数起点相同但会一直往下数,所以这些 12 月的日子可能返回第 53 周甚至第 54 周。和国外的人沟通周数时,请说明用的是哪种周制,或者直接给出日期。本页的所有计算都在你的浏览器中完成。
在 Excel 和代码中获取周数
如何获取日期 d 的 ISO 周数,以及 y 年第 w 周的周一。
| 工具 | 日期的 ISO 周数 | 第 w 周的周一 |
|---|---|---|
| Excel / Google 表格 | =ISOWEEKNUM(A1) | =DATE(y,1,4)-WEEKDAY(DATE(y,1,4),3)+7*(w-1) |
| Python | d.isocalendar().week | date.fromisocalendar(y, w, 1) |
| PHP | date('W', $ts) | (new DateTime())->setISODate($y, $w) |
| Java | d.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR) | LocalDate.of(y, 1, 4).with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, w).with(DayOfWeek.MONDAY) |
| C# | ISOWeek.GetWeekOfYear(d) | ISOWeek.ToDateTime(y, w, DayOfWeek.Monday) |
| JavaScript | Temporal.PlainDate.from(d).weekOfYear | — |
| MySQL | WEEK(d, 3) | STR_TO_DATE(CONCAT(y, ' ', w, ' Monday'), '%x %v %W') |
| PostgreSQL | EXTRACT(WEEK FROM d) | to_date('2026-44-1', 'IYYY-IW-ID') |
| SQL Server | DATEPART(ISO_WEEK, d) | — |
| Bash (GNU date) | date +%V | — |
Excel 的 WEEKNUM(A1) 不带第二个参数时,返回美国式周数(周日开始,第 1 周包含 1 月 1 日)。WEEKNUM(A1,21) 与 ISOWEEKNUM 相同。Java 需要 java.time.temporal.IsoFields;C# 需要 System.Globalization。
常见问题
今天是第几周?
今天的周数显示在页面顶部,并会在午夜自动更新。2026 年 11 月 1 日(周日)是 ISO 第 44 周,这一周从 2026 年 10 月 26 日(周一)到 11 月 1 日(周日)。
ISO 周数是怎样计算的?
ISO 周从周一开始。第 1 周是包含当年第一个星期四的那一周,也就是包含 1 月 4 日的那一周。之后每过一周加一,所以大多数日子都在第 1 到第 52 周之间,有些年份还有第 53 周。
哪些年份有 53 周?
如果 1 月 1 日是星期四,或者这一年是闰年且 1 月 1 日是星期三,ISO 年就有 53 周。2020 年和 2026 年有 53 周;接下来是 2032、2037、2043 和 2048 年。其他年份都是 52 周。
为什么 ISO 周数和美国周数不同?
美国的周制从周日开始,并把包含 1 月 1 日的那一周算作第 1 周,即使这一周只有一天在 1 月。ISO 从周一开始,并且要求新年里至少有四天。很多日期的美国周数比 ISO 周数大一。
如何在 Excel 或 Google 表格中获取周数?
ISO 周数用 =ISOWEEKNUM(A1),中国和欧洲通常使用这种周制。=WEEKNUM(A1) 返回从周日开始的美国式周数。要找到 y 年第 w 周的周一,用 =DATE(y,1,4)-WEEKDAY(DATE(y,1,4),3)+7*(w-1)。