计算两个日期之间相隔的天数
发布于 · 更新于 阅读约 1 分钟
从 1 月 1 日到 1 月 31 日,按算法不同,是 30 天、31 天或 22 天。清楚自己要的是哪一种,才不会在截止日期上差一天。
同一个区间的三种算法
计算日期时长 会为每个区间给出这三个总数。
| 2026 年 1 月 1 日到 31 日 | 结果 |
|---|---|
| 相差天数,不算起始日 | 30 天 |
| 包含两端日期 | 31 天 |
| 周一到周五,包含两端日期 | 22 天 |
差值是两个日期之间的间隔:起始日不计入。包含两端日期时,要加一天。从 2026 年 12 月 31 日到 2027 年 1 月 1 日,差值是 1 天,包含两端日期的总数是 2 天。
弄清楚第一天算不算
从 1 月 1 日开始、期限 30 天的截止日,如果第一天不计入,就在 1 月 31 日结束,如果计入,就在 1 月 30 日结束。由合同或法规的文本来决定:选总数之前,请先在那里找到确切的措辞。
周一到周五的天数
周一到周五的总数,如果两端日期落在工作日,就把它们都算进去。它不会扣除公共假日:请对照日历,自己手动扣除。四个区间的总数经过独立计算交叉核对,结果相同:2026 年 1 月为 22 天,2026 年 1 月 31 日到 3 月 31 日为 42 天,2020 年 1 月 1 日到 2026 年 10 月 26 日为 1,779 天,2026 年 3 月 28 日到 30 日为 1 天。
月份是日历月
工具计算的是完整的日历月。如果到达月份没有对应的那一天,就退到该月的最后一天。
| 区间 | 差值 | 完整月数 |
|---|---|---|
| 2026 年 1 月 15 日到 4 月 15 日 | 90 天 | 3 |
| 2026 年 1 月 31 日到 3 月 31 日 | 59 天 | 2 |
| 2026 年 1 月 31 日到 2 月 28 日 | 28 天 | 1 |
| 2026 年 1 月 1 日到 2027 年 1 月 1 日 | 365 天 | 12,即 1 年 |
闰年
从 2024 年 2 月 29 日到 2025 年 2 月 28 日,工具显示 365 天和整整 1 年。一个日历年有 365 或 366 天:对于合同,请以确切的天数为准,而不要以年数为准。
日期顺序颠倒
工具始终保留正的区间:从 3 月 1 日到 2026 年 2 月 1 日,它显示 28 天,与顺序相反时一样。“交换”按钮可以交换两个日期。
小时与时钟调整
显示的小时数是天数乘以 24。从 2026 年 3 月 28 日到 30 日,这个区间包含欧洲切换夏令时的那一天,工具显示 48 小时,没有计入少掉的那一小时。
检查结果
- 记下第一天是否必须计入,然后读取对应的那一行。
- 要得到周一到周五的总数,请手动扣除公共假日。
- 用同一个工具检查一个简单的情况,比如相隔 7 天的两个日期。
想把日期转换成秒数,请参阅 转换 Unix 时间戳。
