日期计算器
计算两个日期之间相差多少天,或者从某个日期加减天、周、月、年——专门解决“到底要不要把当天算进去”这个老大难问题。
也就是 0 年 0 个月 0 天。
以上计算不涉及时区,两个日期都按纯日历天处理。“不含首日”是直接相减的结果(12月31日-12月30日=1天);“含首尾两天”是在此基础上加1天,适用于“3天的行程算几晚”或者合同覆盖的总天数这类场景。
为什么“相差几天”经常有两个都对的答案
“3月1日到3月10日相差几天”——很多人问的时候,其实是在问两个不同的问题而不自知。如果问的是“这两个日期之间隔了几天”,答案是9天(直接相减)。但如果问的是“从3月1日住到3月10日,一共住了几天”,答案是10天——因为3月1日本身也要算作一天。两个答案都没错,只是回答的问题不一样。
本工具会同时给出两个结果:直接相减的天数(不含首日),以及“含首尾两天”的天数(在此基础上加1)。像“离我的航班还有几天”这种场景用不含首日的数字;像“我的酒店预订/租期/合同期覆盖多少天”这种场景,用含首尾两天的数字。
“从某天推算”模式解决的是另一个高频需求——今天签的合同有30天的通知期、发票开出后60天到期、签证入境后90天有效期。它会正确处理月份天数不一致的情况(1月31日加一个月,会落在2月28日或29日,而不是3月3日)。
常见问题
为什么同样两个日期,算出来的天数会有两个?
“相差几天”本身就是个有歧义的问题。直接相减(不含首日)回答的是“过去了几个完整的天”;在此基础上加1(含首尾两天)回答的是“这段时间跨越了几个日历天,首尾都算上”。一份从1月1日到1月31日的合同,不含首日算是30天,含首尾两天算是31个日历天——两个数字都对,只是问的问题不同。
酒店住宿或租期应该用哪个数字?
如果你问的是“我能用这个房间/场地几天”,通常用含首尾两天的数字;如果问的是“要按几晚收费”(也就是不含首日的数字,正好等于晚数),用不含首日的数字。周一到周四住3晚,含首尾两天算是4天,不含首日算是3天(也就是3晚)。
“往后推/往前推”模式是怎么处理月份和年份的?
它按日历月推算,而不是固定按30天算——所以1月15日加1个月得到的是2月15日,而不是2月14日。如果目标月份天数不够(比如1月31日加1个月),日期会被限制在目标月的最后一天,而不会溢出到下个月。
这个计算涉及时区吗?
不涉及——两个日期都按纯日历天处理,不带具体时刻或时区,这正好适用于合同期限、到期日、天数计算这类场景。如果你需要跨时区计算具体时刻,那是另一种计算,不是这个工具要解决的问题。