📅 日期差计算器

两个日期间的天数/周数/月数/年数 + 工作日计算 + 倒计时

Ad Space
📊 计算结果
相差天数
--
相差周数
--
相差月数
--
相差年数
--
Ad Space

什么是日期差计算器?

日期差计算器是一款用于计算两个日期之间时间间隔的在线工具。它可以快速计算出两个日期之间相差多少天、多少周、多少个月、多少年,还支持工作日计算和日期推算功能。无论是计算项目周期、纪念日、倒计时、预产期、还是规划行程,都可以使用本工具快速得到准确结果。所有计算在浏览器本地完成,无需联网,不涉及隐私数据上传。

功能特点

使用场景

场景一:项目管理与排期

在项目管理中,经常需要计算项目周期、里程碑间隔、任务工期。例如项目从3月1日启动,计划6月30日完成,总共多少天?其中多少个工作日?用本工具的工作日计算功能,可以快速得出总天数122天、工作日约87天(按每周5天计算,不含法定节假日)。帮助项目经理合理安排人力和时间。

场景二:纪念日与倒计时

想知道和ta在一起多少天了?距离结婚纪念日还有多少天?距离年底还有多少个工作日?输入两个日期即可得到答案。也可以用日期推算功能,比如"100天后是几月几号星期几",方便安排100天纪念日的庆祝活动。生日、周年、节日倒计时都可以轻松计算。

场景三:孕产育周期计算

计算孕周和预产期是常见的日期计算需求。以末次月经第一天为基准,加280天(40周)就是预产期。用日期推算功能,输入末次月经日期,加280天即可得到预产期。还可以计算当前孕周、距离预产期还有多少天等。当然,实际预产期以医生诊断为准,本工具仅作参考。

场景四:合同与账期管理

商务合同中经常有"30天内付款""90天账期""合同签订后15个工作日内交付"等条款。用本工具的日期推算功能可以快速算出付款截止日、交付截止日。用工作日计算功能可以排除周末,更精确地计算工作日天数,避免因日期计算错误导致违约。

计算原理

日期计算的核心是利用 JavaScript 的 Date 对象进行时间戳运算。Date 对象内部以毫秒级时间戳存储日期,两个日期相减得到毫秒差,再除以对应的换算系数(86400000毫秒=1天)即可得到天数。月数和年数的计算稍微复杂,因为不同月份天数不同,需要按月逐一计算或使用年月差算法。

// 计算两个日期之间的天数
function diffDays(start, end) {
  const ms = end - start;
  return Math.floor(ms / (1000 * 60 * 60 * 24));
}

// 计算工作日数量(排除周六周日)
function countWorkdays(start, end) {
  let count = 0;
  const cur = new Date(start);
  while (cur <= end) {
    const day = cur.getDay();
    if (day !== 0 && day !== 6) count++;
    cur.setDate(cur.getDate() + 1);
  }
  return count;
}

// 日期加减
function addDate(base, years, months, days) {
  const result = new Date(base);
  result.setFullYear(result.getFullYear() + years);
  result.setMonth(result.getMonth() + months);
  result.setDate(result.getDate() + days);
  return result;
}

关于闰年

闰年是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。闰年规则:能被4整除但不能被100整除的年份是闰年,能被400整除的也是闰年。闰年2月有29天,平年2月有28天。在进行日期加减计算时,如果涉及2月底,需要注意闰年的影响。例如1月31日加1个月,平年是3月3日(因为2月只有28天),闰年是3月2日。

常见问题

日期差计算包括起止日期吗?
本工具默认计算方式:结束日期 - 开始日期 = 间隔天数,不包含开始日期当天,包含结束日期。例如1月1日到1月3日,间隔为2天(1日到2日是1天,2日到3日是1天)。如果您需要"第几天"的算法(包含首尾),可以在结果上加1天。工作日计算同理,包含结束日但不包含起始日。
工作日计算包含法定节假日吗?
本工具的工作日计算仅排除周六和周日,不包含中国法定节假日(如春节、国庆节等)的调整。因为法定节假日每年由国务院公布,日期不固定且可能有调休。如果需要精确的工作日计算,建议参考国务院发布的当年节假日安排,手动调整本工具的计算结果。
日期推算跨月/跨年准确吗?
准确的。本工具使用 JavaScript 原生 Date 对象进行日期计算,自动处理了大小月、闰年等情况。例如1月31日加1个月会得到2月的最后一天(平年28日、闰年29日),而不是3月3日或2月31日这样的无效日期。Date 对象的内部实现经过了充分验证,计算结果可靠。
可以计算公元前的日期吗?
不建议。JavaScript 的 Date 对象虽然理论上支持很大的日期范围,但日期选择器仅支持 1900 年以后的日期。而且公元前的历法与现在不同(如儒略历与格里高利历的差异),计算结果可能不准确。如果需要计算历史日期,建议使用专业的历史历法工具。
为什么有时计算"X个月后"结果不如预期?
因为每个月的天数不同(28-31天),"加1个月"的定义可能有歧义。本工具使用 JavaScript 默认的处理方式:设置月份后,如果日期超过了目标月的最后一天,自动调整为该月最后一天。例如1月31日加1个月 → 2月28日(平年)或2月29日(闰年)。这是最常用和合理的处理方式。
能计算小时、分钟级的时间差吗?
本工具主要以"天"为单位计算。如果需要精确到小时或分钟的时间差,建议使用日期时间戳相除的方法:(结束时间戳 - 开始时间戳) ÷ 3600000 = 小时数,÷ 60000 = 分钟数。后续我们可能会推出更精确的时间差计算工具,敬请期待。

🏷️ 相关标签

隐私安全计算器在线工具办公效率效率提升计算工具集实用工具时间日期