Loading...
Loading...
免费的在线日期计算器——计算两个日期之间的天数,或在日期上加减天数。
7
天
日期计算是软件开发中的基本任务。常见操作包括计算两个日期之间的天数、计算项目截止日期、确定年龄、安排重复事件以及计算计费、分析和报告的时间间隔。
日历日计算计算两个日期之间的每个日历日,无论是否为工作日、周末或节假日。从周一到下周一的跨度为 7 个日历日。日历日计算是大多数软件应用程序和法律上下文的标准。
工作日计算(也称为营业日)排除周末并可选择排除节假日。用于 SLA 跟踪、法庭截止日期、运输估算和项目管理。周五下的订单可能在"3 个工作日"后发货——到达时间为周三而非周一,因为周六日被排除。
日期算术还包括加减单位:天、周、月和年。加月比加天更复杂,因为月份长度可变。在 1 月 31 日加 1 个月可能得到 2 月 28 日(或闰年的 29 日),具体取决于实现。JavaScript 的 Date 对象通过滚动到下个月来处理此问题。
此计算器支持两种模式:日期差(计算两个日期之间的天数/周数/月数)和日期加法(从起始日期加减天数)。所有计算完全在浏览器中运行。对于生产应用,考虑使用时区感知库(如 date-fns 或 Day.js),它们能正确处理 DST 转换等边缘情况。
闰年为日期计算增加了额外复杂性。如果年份能被 400 整除,或能被 4 整除但不能被 100 整除,则该年为闰年。这意味着 2000 年是闰年,2100 年不是,2024 年是闰年。二月在闰年有 29 天,其他年份有 28 天。任何跨越多个年份的日期计算都必须考虑到这一点,否则范围中的每个闰年都会造成一天误差。
日历日计算包括周末和节假日的每一天。工作日仅计算周一至周五(并可选择排除节假日)。周一起的"5 个日历日"截止日期是周六;"5 个工作日"则是下周一。
不是。在 1 月 31 日加 1 个月得到 2 月 28 日(或闰年的 29 日)。这是因为月份长度不同。JavaScript 和大多数编程语言通过将日期限定为目标月份的最后有效日期来处理此问题。对于月末日期,务必验证日期算术结果。
通常由时区问题引起。如果创建日期时未指定时区,JavaScript 使用本地时间午夜。转换为 UTC 时,日期可能偏移一天。在比较或计算日期时,务必明确处理时区。
每 4 年有一个闰年(能被 4 整除),世纪年除外(必须能被 400 整除)。2000 年是闰年,2100 年不是。二月在闰年有 29 天,其余年份 28 天。任何跨越多个年份的日期计算都必须考虑闰日,否则范围中的每个闰年都会产生误差。
用当前年份减去出生年份,如果当前日期在今年生日之前(比较月/日),则再减去 1。这考虑到了今年是否已经过了生日。许多日期库都有专门的年龄计算函数,能正确处处理这些边缘情况。