跳到主要内容
CalcMax

星期计算器

结果

星期六

星期几

年内第几天
262 天
年内剩余天数
103 天
ISO 周序号
38

同一天在任何国家都是同一个星期几:2026 年 9 月 19 日是星期六,时钟改变不了它。会变的只是算法——把日期经由本地时区转一圈的实现,会对一部分用户悄悄返回前一天。这一页从一个日期给出四个数:星期几、它在当年的第几天、当年还剩多少天,以及 ISO 周序号。最后这个最容易意外,因为 ISO 的一周属于包含它星期四的年份。

公式

星期几 =(自 1970 年 1 月 1 日以来的整天数 + 4)mod 7,0 表示星期日

dayNumber
自 1970 年 1 月 1 日以来的整天数;那天是星期四,所以常数是 4
dayOfYear
这个日期在当年中的位置,1 月 1 日记为 1
daysLeft
年内剩余天数:365 或 366 减去上面那个位置
isoWeek
含当年第一个星期四的那一周,编号 1 到 53

用这个计算器可以确认某一天是星期几、查出排程表要的周序号,或者看看这一年还剩多少天、那天落在第几周。星期几是最容易的部分,真正容易出偏差的是周序号:ISO 的一周属于包含它星期四的年份,所以 2021 年 1 月 1 日属于 2020 年的第 53 周。它做不到的是换算历法——这里每个日期都是推算格里高利历,也就是历史学者给 1582 年以前日期用的那一套,1582 年 10 月被抹掉的那十天在它里面从未发生。

算例

  1. 2026 年 9 月 19 日

    1. 自 1970 年 1 月 1 日以来的整天数:20715。加上 4 天偏移得 20719,20719 除以 7 余 6 —— 0 是星期日,所以这天是星期六
    2. 年内第几天:1 到 8 月共 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 = 243 天,243 + 19 = 262
    3. 年内剩余天数:2026 年是平年 365 天,365 − 262 = 103
    4. ISO 周序号:这天所在那一周的星期一是 2026 年 9 月 14 日,落在 ISO 年的第 38 周

    四个答案来自同一个日期。星期几可以拿任何一本纸质日历核对;周序号才是各家工具说法不一的那一个,因为一周由它的星期四定义,而不由它从哪一天开始定义。

  2. 2021 年 1 月 1 日 —— 1 月的日期却属于第 53 周

    1. 2021 年 1 月 1 日是星期五,所以它所在的那一周从 2020 年 12 月 28 日星期一到 2021 年 1 月 3 日星期日
    2. ISO 的一周属于包含它星期四的那一年,而那个星期四是 2020 年 12 月 31 日
    3. 于是这一周沿用 2020 年的最后一个周号 53 —— 2021 年的日期报出的是上一年的周号
    4. 年内第几天与年内剩余天数不受影响:它们分别是 1 和 364,因为它们只在日历年里数

    这条边界正是周序号值得单独列一个输出的原因。2020 年有 53 个 ISO 周、2021 年只有 52 个,而 2021 年头三天属于前一年的计数。

  3. 2024 年 2 月 29 日 —— 闰日

    1. 2024 能被 4 整除且不能被 100 整除,是闰年,2 月有 29 天
    2. 年内第几天:1 月的 31 天加 29 等于 60 —— 在 2023 年这一天不存在,占第 60 位的是 3 月 1 日
    3. 年内剩余天数:366 − 60 = 306
    4. 星期几:2024 年 2 月 29 日是星期四,它所在那一周的星期一是 2 月 26 日

    闰日把它之后的所有位置都往后推了一位,所以年内第几天是这一页上唯一一个没法从平年日历上读出来的输出。

局限

所有日期都是推算格里高利历:把公历往古代延伸的结果,不是当时人真正在用的历法。所以 1582 年 10 月看不到被抹掉的那十天,公元 1000 年会得到一个编年史不会承认的星期几。周序号用 ISO 口径,而美国习惯以周日为一周之始,每年有几天与这里不同。这里也不做时区换算,因为星期几与所在时区无关。

常见问题

怎么算某一天是星期几?
从一个已知的日子数整天天数,再对 7 取余。1970 年 1 月 1 日是星期四,所以 20715 天之后的日期是 20715 + 4 = 20719,20719 除以 7 余 6,即星期六。任何绕开算术的口诀做的其实是同一件事,只是把这段计数藏进了一张表里。
ISO 周序号是什么?
它是 ISO 8601 定义的周编号。一周从星期一开始,第 1 周是含当年第一个星期四的那一周,这条规则让每一周恰好属于一个年份,所以 1 月初的日期可能属于上一年的第 52 周或第 53 周。欧洲和大多数排程软件用的都是这套编号。
为什么 1 月的日期会显示第 53 周?
因为 ISO 的一周属于含它星期四的那一年,而不是它星期一的那一年。2021 年 1 月 1 日那一周的星期一是 2020 年 12 月 28 日,星期四在 2020 年,所以沿用 2020 年最后一个周号 53。同样地,2026 年 12 月 31 日属于第 53 周。
时区或具体时刻会影响结果吗?
不会,星期几与时刻和时区都无关。这个工具完全不做本地时区转换。它避开的坑是真实存在的:用本地时间方法构造日期、再把日或月读回来的实现,会对计算所在机器以西的用户返回前一天,而且只对他们出错。
年内第几天有什么用?
它是这个日期在当年中的位置,1 月 1 日记为 1。有些行业用序数日期写截止期限——2026 年的第 262 天就是 9 月 19 日——而年内剩余天数就是当年长度减去这个位置,所以两个数加起来永远等于当年长度,闰年也一样。

参考资料

相关计算器