年日期计算器

输入一个日历日期,立刻算出它在当年是第几天、星期几、第几周、属于第几季度,以及距年末还剩多少天。打开页面已填好 2026-10-06,结果是年内第 279 天、星期二、第 40 周、第 4 季度,距年末还有 86 天。

范围 1900-01-01 至 2100-12-31;改日期按 Enter 立即重算。
年内第几天279 / 365 天
星期星期二
是否闰年否(365 天)
距年末剩余86 天
本年第几周第 40 周
季度第 4 季度
月份10 月
日6 日

上面八张卡是 2026-10-06 的服务端直出值,点任意按钮后会随当前日期重算。下方表格列出当月每一天对应的年内序号与星期,默认显示前 12 行。

日(当月)年内第几天星期所在周

使用方法

  1. 「日期」填 2026-10-06(示例值,格式 yyyy-mm-dd)。填错格式或不存在的日期会直接报错,例如 2026-02-30 会被拦下。
  2. 在日期框里按 Enter 立即重算;也可以点「计算年内序号」。结果区打开时已经用默认值算好:第 279 天、星期二、第 40 周。
  3. 看结果卡:八张卡给出年内序号、星期、是否闰年、距年末剩余天数、所在周、季度、月份与日,把「这个日期在一年的什么位置」一次说清。
  4. 下方表格把当月每一天的年内序号与星期列出,默认显示前 12 行,点「加载更多」补齐整月;点「导出 CSV」得到带 BOM 的表格文件,点「复制结果」把八张卡抄成纯文本。
  5. 若想看一整年的分布,直接翻到「输入范围与对照表」里的逐月序号表,那里列出平年每月 1 号对应的年内第几天。

年日期计算器能解决什么

一是把「几月几号」翻译成「年内第几天」。很多业务口径按年内序号走:财报按第几季度、考勤按年内天、跨年统计按距年末剩余天数。年日期计算器把任意日期一键转成这套序号,省去每次心算累加每月天数。

二是统一「星期」与「周数」两个容易乱的口径。星期几是国际通用的单调序列;而「第几周」在国内常按「每 7 天一茬」简化成 ceil(年内序号÷7)。本页同时给出两者,并在常见问题里讲清 ISO 周与简化周的区别,避免对账时把两种口径混着比。

三是顺手判定闰年与季度。闰年影响 2 月是 28 还是 29 天,进而改变 3 月以后所有日期的年内序号;季度决定财报归属。本页在每张结果卡里直出这两项,改一个日期即时刷新。

四是给出「距年末还剩多少天」。这是目标管理、预算消耗、项目倒计时常用的倒数基线。默认示例 2026-10-06 距年末还有 86 天,等于提醒你第四季度已经过了 279 天、只剩不到四分之一。

本页不做这些事:不算两个日期之间的间隔天数(那是日期差值计算器的活),不按 ISO 8601 的精确周规则排周,也不做农历与节假日换算。要看跨日跨度请用「日期差值计算器」,要排工作日请用「工作日计算器」。

原理和变量:年内序号的六个内核

① 用的公式。年内第几天 = 目标日期与「当年 1 月 1 日 00:00 UTC」之间的整天数 + 1。本页用 Math.round((日期 − Date.UTC(年,0,1)) ÷ 86400000) + 1 实现。默认示例:2026-10-06 距 2026-01-01 为 278 天,加 1 得 第 279 天。距年末剩余 = 全年天数 − 年内序号,平年 365 − 279 = 86 天。

② 关键参数:全部用 UTC 字段。判定星期和天数都用 getUTCDay / getUTCFullYear 而非本地字段,避免浏览器时区把 00:00 的日期在 UTC−时区里提前成前一天。2026-10-06 在 UTC 是星期二;若用本地字段,UTC−5 地区会当成 10 月 5 日星期一,结果整体错一天。这是年日期计算器跨时区一致的关键。

③ 遵循的标准。星期序列(日一二三四五六)与年内序号都是公历(格里高利历)的固有属性,1 月 1 日固定为第 1 天,12 月 31 日为第 365(或 366)天。公式不引入任何私有约定,所以和任意日历库、Excel 的 DATE 函数应当一致。

④ 输入怎么变成输出。设日期 T、所在年 Y:年内序号 doy = 距 Y 年 1 月 1 日的天数 + 1;全年天数 dim = 闰年 ? 366 : 365;剩余 = dim − doy;所在周 = ceil(doy ÷ 7);季度 = ceil(月份 ÷ 3);星期 = getUTCDay 映射到中文。闰年判定:能被 4 整除且不能被 100 整除,或能被 400 整除。默认示例 Y=2026 不是闰年,dim=365。

⑤ 边界与阈值。日期范围锁在 1900-01-01 至 2100-12-31,超出会被拒;非法格式(如 2026-10-6 少补零、2026/10/06 用斜杠、2026-13-01)同样报错并指明行号式原因。闰年 2 月 29 日只在闰年合法,平年填 02-29 会被识别为不存在的日期而拒绝。

⑥ 常见误用。第一是拿「所在周」和 ISO 周数比:本页用 ceil(doy÷7) 的简化周,第 1 天到第 7 天算第 1 周;而 ISO 8601 把含该年第一个周四的那一周定为第 1 周,两者在年初年末能差出一两。第二是忘记闰年:2 月 29 日之后所有日期的年内序号在平年与闰年相差 1,跨年累计时极易漏算。第三是时区错位(见上文)。

完整示例(数值仅作演示)

示例条件与页面默认值完全一致:2026-10-06。实测:

再换两个边界日期对照:2026-01-01 是年内第 1 天、星期四、剩余 364 天、第 1 周、第 1 季度;2026-12-31 是年内第 365 天、星期四、剩余 0 天、第 53 周、第 4 季度。把 1 月 1 日和 12 月 31 日拉到一起看,正好把一年首尾两次点满,说明序号区间是闭区间 [1, 365](闰年 [1, 366])。

输入范围与对照表

下表列出平年(如 2026)每月 1 号对应的年内第几天,以及各月天数,用来核对年中任意日期的累加基数:

月份1 号是年内第几天当月天数季度
1 月131第 1 季度
2 月3228第 1 季度
3 月6031第 1 季度
4 月9130第 2 季度
5 月12131第 2 季度
6 月15230第 2 季度
7 月18231第 3 季度
8 月21331第 3 季度
9 月24430第 3 季度
10 月27431第 4 季度
11 月30530第 4 季度
12 月33531第 4 季度

闰年时 2 月变成 29 天,3 月 1 号及之后的「1 号序号」整体加 1(例如闰年的 10 月 1 号是第 275 天而不是 274 天)。所以 2026 是平年,10 月 6 号顺推为第 279 天;若把年份换成闰年 2028,同样的 10 月 6 号会变成第 280 天。

结果边界和舍入

常见问题

年内第几天和「第几周」是一回事吗?

不是。年内第几天是从 1 月 1 日数起的天数(1~365/366),是连续整数;「第几周」是把这些天按每 7 天一茬切出来的序号,本页用 ceil(年内序号 ÷ 7)。两者量纲不同:第 8 天是第 2 周的第 1 天。需要 ISO 8601 严格周规则(含该年第一个周四的那周为第 1 周)请用专门的周数工具,两种口径在 1 月和 12 月可能差 1。

为什么我填 2026-10-06 算出来是星期二,日历上却显示别的?

因为本页强制用 UTC 字段判定星期,任何时区结果都一致。如果你的系统日历按本地时区显示、且处在 UTC−5 以西的时区,2026-10-06 的 00:00 本地时间对应 UTC 的 10 月 5 日,会显示星期一。本页统一按 UTC 零点取星期,避免这种错位。要核对本地日历,请把两端都按同一时区理解。

闰年到底怎么判断?2026 是闰年吗?

闰年规则:能被 4 整除且不能被 100 整除,或能被 400 整除。2026 不能被 4 整除,所以是平年,全年 365 天、2 月 28 天。2028 能被 4 整除且不是整百年,是闰年;2100 虽能被 4 整除但是整百年且不能被 400 整除,仍是平年。闰年只多一天(2 月 29 日),却会让 3 月以后所有日期的年内序号整体加 1。

填 2026-02-30 会怎样?

会被直接拒绝并提示「不存在的日期」。本页在解析时不仅校验格式,还会回读校验该日期是否真实存在:2 月最多 29 天(闰年),平年填 30 日、填 13 月、填 2 月 29 日(平年)都属于非法。这样做是为了避免「少一位数字或写错月份导致某段被悄悄跳过」这种最难排查的错误。

距年末剩余天数含今天吗?

不含。本页的「距年末剩余」= 全年天数 − 年内序号,对 2026-10-06 给出 86 天,意思是「从明天(10 月 7 日)到 12 月 31 日还有 86 个完整日」。若把当天也算进去应加 1,但为避免口径混淆,本页统一用「不含当天」的口径并在结果卡里明确写出数值。

为什么结果里季度是「第 4 季度」而不是「第 3 季度」?

因为季度按自然月切:1~3 月为第 1 季度,4~6 月第 2,7~9 月第 3,10~12 月第 4。10 月属于 10~12 月区间,所以是第四季度。公式 ceil(月份 ÷ 3) 对 10 月得到 ceil(3.33) = 4,与自然划分一致。

这个年日期计算器能算农历或节假日吗?

不能。本页只处理公历的年内序号、星期、周数、季度与闰年,不涉及农历、节气、法定节假日。农历换算与放假安排是另一套历法数据,需要专门的农历工具或节假日名单,本页刻意不做,是为了让公历序号保持简单可复现。

输入会被上传或保存吗?

不会。所有计算在当前页面完成,没有任何网络请求,也不写浏览器存储;刷新页面日期恢复成示例值。你可以打开开发者工具的 Network 面板自行确认,修改日期时不会出现新的请求。

相关工具