日期计算器

算两个日期相差多少天、某个日期加减若干天,还能算工作日天数、第几周、是否闰年。 全部在浏览器本地计算,不联网、不上传

今天信息

今天日期
星期几
今年第几天
今年还剩
今年是否闰年
本年第几周
今年进度

按你电脑的本地时区实时计算,打开页面时算一次。周数采用 ISO 8601 口径:周一是一周的第一天,跨年那一周算在含周四的那一年里。

两个日期相差多少天

总天数按"不含开始日、含结束日"的常规口径;含首尾就是再多算一天。工作日是从早的那个日期起逐天遍历、 去掉周六周日数出来的,不是用"总天数 ÷ 7 × 5"估算——那样算会因为首尾不是完整周而偏一天。

日期加减

填非负整数。

月份和年份按日历月加减,月末做了溢出保护:1 月 31 日加 1 个月,结果是 2 月 28 日(闰年 29 日), 不会跑到 3 月 3 日;2 月 29 日加 1 年,落到平年的 2 月 28 日。发生了这种调整时页面会单独提示。

这个计算器能帮你算什么

多数时候我们要的不是"某天是星期几",而是两个日子之间隔了多久。 买了台设备,保修两年,想知道哪天到期;接了活,对方说"工期 45 天",想确认交付日是哪天; 公司规定入职满一年才有年假,想提前把日子记下来;签了合同,想知道还剩几天到期。 这些问题的共同点是:起止日期里总有一个是未知的,要靠加减或相减求出来,而手算最容易错的就是跨月和闰年。 下面三个面板分别对应算差值、日期加减和今天的基础信息。

闰年到底怎么判断

规则就三句:能被 4 整除的年份是闰年;但能被 100 整除的不是闰年;再但,能被 400 整除的又是闰年。 所以 1900 年不是闰年,2000 年是闰年,2024 年是闰年,2100 年不是。

之所以绕这么一圈,是因为地球绕太阳一圈约 365.2422 天,不是整整 365 天。 按 365 天算,每年少 0.2422 天,四年攒够约一天,于是每 4 年补一个 2 月 29 日; 可 0.2422 比 0.25 小一点,这样补又补多了,100 年多补约一天,于是整百年不闰,把这天扣回来; 扣完又略微扣多,400 年再补一次。三条规则合起来就是通行公历的置闰方式,误差小到几千年才差一天。

闰年影响的正是最容易出错的地方:2 月从 28 天变成 29 天,全年从 365 天变 366 天。 只要计算区间跨过 2 月底,闰年判错结果就差一天。本工具的"今年第几天""今年还剩多少天"都用到了它。

"相差多少天"为什么会有不同答案

同样问"从 3 月 1 日到 3 月 10 日相差几天",至少有三个答案,而且都不算错:

平时心里有数就行,但碰到合同到期、报名截止、考试时间这类事,差一天是要紧的: 对方说的"30 天内"从哪天起算、含不含当天,最好写在文字里,别靠各自理解。

为什么日期计算容易差一天

很多时候不是你算错,是工具用错。JavaScript 里有个很有名的坑: new Date('2026-01-01') 这种只写到日期的字符串,会被当成 UTC 午夜解析, 而不是你所在时区的午夜。国内是东八区,比 UTC 早 8 小时,这个对象在本地看来其实是 2026-01-01 08:00;换成西半球的时区,它甚至可能变成 2025 年 12 月 31 日。 再拿它去和别的日期相减,只要中间夹了一次时区换算,结果就漂了一天。

正确做法是明确告诉浏览器这是本地日期:用 new Date(2026, 0, 1) 这种"年、月、日"三个数字的写法,注意月份从 0 开始数(0 就是 1 月)。 本工具全程按你电脑的本地时区计算,不用 UTC 格式化输出,整日的加减统一按日历天处理,不受夏令时影响。

怎么用


提醒一句:涉及合同、考试、报名的截止日期,请以官方口径(含不含当天、按哪个时区)为准,本工具只帮你算草稿。 全部计算都在你的浏览器里完成,不会上传,也不会被保存。

← 返回工具箱