01 / 问题
先把“几天”改写成一个不会歧义的问题
8 月 1 日到 8 月 2 日,数学上的日期间隔是 1 天;如果把 1 日和 2 日都算作占用的一天,区间覆盖 2 个日历日期。两个答案都可能正确,取决于你在算距离、住宿晚数,还是参与天数。
计算前先写一句口径,例如“结束日不计入”“首尾两天都计入”或“只计算周一至周五”。这句话比计算器按钮更重要,因为它决定是否需要在数学间隔上加 1。
02 / 边界
区分半开区间和首尾包含
酒店从 8 月 1 日入住、8 月 3 日退房,通常是 2 晚,因为退房日不再占用当晚;活动从 1 日持续到 3 日且每天都有安排,则通常覆盖 3 个日历日期。
| 场景 | 开始 | 结束 | 常见结果 | 边界 |
|---|---|---|---|---|
| 住宿晚数 | 8 月 1 日 | 8 月 3 日 | 2 晚 | 结束日不计 |
| 活动日期 | 8 月 1 日 | 8 月 3 日 | 3 天 | 首尾都计 |
| 数学间隔 | 8 月 1 日 | 8 月 3 日 | 2 天 | 两个日期之差 |
03 / 工作日
周一至周五不等于法定工作日
通用工作日计算通常只跳过周六和周日。中国大陆的法定节假日、调休补班,以及公司自定休息日,都需要另外的数据表。某个周六可能因调休成为工作日,某个周一也可能是法定假日。
因此,周一至周五口径适合早期项目排期和粗略估算;工资、考勤、诉讼时效、合同通知期等结果,必须以对应地区、年份和机构的正式规则复核。
04 / 时区
只算日期时,不要让时区和夏令时偷偷参与
如果任务只关心日历日期,应该把输入当作“年-月-日”,而不是两个本地午夜时间戳相减。某些地区进入或退出夏令时时,一天可能是 23 或 25 小时;直接除以 24 小时可能出现偏差。
跨国航班、系统日志和精确倒计时则不同,它们关心具体时刻,需要同时记录时区或 UTC 偏移。先判断问题是“相差几个日历日”还是“相差多少小时”,再选择计算方式。
交付前检查
交付前检查
下一步
打开工具,把步骤做完
先写清口径,再算自然日、周末与周一至周五。
打开日差