日期间隔计算器

免费的日期间隔计算器,只需输入两个日期,即可按照日历规则精确算出相差的天数、周数、月数和年数,闰年也不会算错。除了单纯的天数差之外,还会同时显示住院天数、租赁期限等场合使用的"含首尾天数"(把开始日期和结束日期都算作一天),无需再纠结该用哪种数法。

什么是日期间隔计算

日期间隔计算是指计算两个日期之间相差多少天。用手指数着日历一天天数,很容易因为每个月的天数不同(28~31天)以及闰年2月29日的存在而数错,期间越长,手动计算就越不现实。只需输入开始日期和结束日期,本工具就会同时显示总天数,以及"年・月・日""月・日""周・日"三种单位的换算结果。

此外,计算天数的方式有两种:把开始日期算作第0天的"单纯天数差",以及把开始日期和结束日期都算作一天的"含首尾计数法"。该用哪一种取决于用途——住院天数、出勤天数等场合通常需要含首尾计算,而只是想大致了解经过时间时则用单纯天数差即可,两者的结果恰好相差一天。本工具会同时显示这两种计数结果,无需事后自行加一或减一。全部计算均在浏览器本地完成,输入的日期不会发送到任何服务器。

日期间隔计算的使用方法

  1. 输入开始日期 在"开始日期"中输入想要开始计算的日期。无论是过去还是未来的日期都可以指定,跨年度的时间段也能正常处理。
  2. 输入结束日期 在"结束日期"中输入想要计算到的日期。想知道到今天为止已经过了多少天时,点击"填入今天"按钮即可立即填入今天的日期。
  3. 根据用途选择合适的计数方式 结果会随输入实时显示。想直观表达期间长度时使用"年・月・日",需要精确天数用于申请或结算时,请根据情况选用"总天数"或"含首尾天数"。
  4. 查看完整的换算内容 同时查看"周・日""月・日"两行,有助于核对结果,或用最合适的单位向他人解释。

用好本工具的小技巧

  • 将即将到来的活动日期填入"结束日期",即可立即看到距离该活动还有多少天。点击"填入今天"按钮可快速将结束日期设为今天。
  • "年・月・日"的换算结果是严格按照日历计算的,例如从1月15日到3月20日会正确显示为"2个月5天",而不是简单地用总天数除以30得到的粗略估算。
  • 计算合同或项目工期时,可将开始日期设为签约日、结束日期设为交付截止日,即可一目了然地看到剩余天数和总工期。
  • 跨越闰年(包含2月29日)的时间段也会自动正确计算,无需手动核对闰年天数。
  • 即使不小心把结束日期填得比开始日期早,工具也会自动交换两个日期进行计算,并显示提示说明,无需手动修正。

日期间隔计算适用的场景

倒数活动或截止日期

将婚礼、考试、产品发布日或合同截止日设为结束日期,即可看到距离该日还有多少天,且会随着今天日期的变化自动更新。

计算工龄或纪念日以来的经过天数

将入职日期或恋爱・结婚纪念日设为开始日期,即可准确掌握从那天到现在经过了多少天、多少个月、多少年。

项目工期与交付截止日管理

将合同签订日设为开始日期、交付截止日设为结束日期,即可一目了然地看到总工期和剩余天数,也可用经过天数除以总天数来计算长期项目的进度。

提前通知期与法定期限计算

许多合同和法规都要求提前若干天通知(例如解约前30天通知)。只需输入通知日期和生效日期,即可确认所需的准确天数。

住院天数等含首尾计数场景

保险理赔和入院手续通常要求把入院日和出院日都算作一天进行计数,"含首尾天数"这一行可以直接给出这个数字。

日期计算相关术语

含首尾天数
把开始日期和结束日期都各算作一天的计数方式,等于单纯天数差加1。适用于需要计算某种状态持续了多少天的场合,例如住院天数、出勤天数、租赁期限等。
单纯天数差
把开始日期算作第0天,只计算两个日期之间间隔的计数方式。在日常和法律场景中,"从X到Y相差多少天"通常默认指这种算法。
应当日
按月或按年计算期间时,与起算日期相同日号的那一天。例如1月31日的一个月后,由于2月没有31日,会被视为2月的最后一天。本工具"年・月・日"的换算结果也采用同样的原理,天数不足时会向上一个月借用末日进行计算。
闰年
2月有29天的年份。公历年份能被4整除即为闰年,但能被100整除的年份则是平年,除非该年份同时也能被400整除。例如2000年是闰年,而1900年和2100年则不是。
格里高利历
1582年由罗马教皇格里高利十三世推行、目前全世界广泛使用的太阳历。凭借上述闰年例外规则,使一年的长度非常接近地球实际公转周期。
工作日
除去周末、法定节假日、年末年初休息日之后实际办公的日子。银行转账、快递配送的天数通常按工作日而非日历天数计算,因此需要单独使用工作日计算工具。

常见问题

年龄计算工具专门用于根据出生日期计算当前的年龄。而本工具是通用的日期间隔计算器,可以自由指定任意的开始日期和结束日期,用于计算除年龄以外的任何时间跨度,例如距离活动的天数、项目工期等。

时间计算工具处理的是"一天之内"的时分秒加减运算(例如给9:30加上2小时15分钟),而本工具处理的是日历上"日期与日期"之间的间隔(以年、月、周、日为单位)。如果需要不足一天的精确时间计算,请使用时间计算工具。

不会报错。工具会在内部自动交换两个日期,按绝对值计算间隔,并显示"已自动交换日期"的提示,因此即使不确定哪个日期在前也可以放心使用。

可以。得益于JavaScript原生的日期运算能力,包含2月29日的时间段也能准确计算出天数、月数和年数,无需手动确认是否涉及闰年。

"总天数"是开始日期与结束日期之间的单纯天数差(开始日期算作第0天)。"含首尾天数"是在此基础上加1,适用于住院天数、租赁期限、在职天数等把开始日期和结束日期都各算作一天的场合。两者并非孰对孰错,请根据实际用途选用。
工具君

闲话 ― 手动计算天数时容易踩的坑

手动估算两个日期之间的间隔时,很多人会把一个月简单地当作30天来概算。但实际上每个月的天数在28天到31天之间不等,例如把1月15日到3月20日估算为"64天÷30≈2.1个月",与按日历精确计算得出的"2个月5天"之间可能存在偏差——而这种偏差在涉及合同期限或账单到期日的判断时可能会造成误解。本工具直接比较Date对象的年、月、日字段,因此始终能返回符合日历规则的准确结果。

闰年的判定规则并不只是"每4年一次"这么简单。按照格里高利历的闰年规则,能被4整除的年份是闰年,但能被100整除的年份则是平年,除非该年份同时也能被400整除。例如2000年是闰年,而1900年和2100年则不是。这一例外规则已内置于JavaScript的标准日期处理机制中,本工具也直接沿用了这一行为。

计算"经过天数"时存在两种常见的计数方式:一种是把开始日期算作第1天的"含首尾"计数(例如1月1日到1月10日算作"10天"),另一种是只看差值的"单纯天数差"(算作"9天")。住院天数、租赁期限等场合通常采用含首尾的计数方式,而只是想了解大致经过时间时则适合单纯天数差。本工具会同时显示这两种计数结果,无需再自行换算。