日历工作台
从日期中减去月份
按完整日历月份向前推算日期,并在目标月份没有对应日期时取该月最后一天。
从日期中减去月份: 通过向前推算指定的完整日历月数,找出更早的日期。如果更早的月份包含原始日期中的日号,就保留该日号;如有必要,则缩短为该月的最后一天。这样可以从某个里程碑日期向前推算,而不必把每个月都视为固定的天数间隔。 完全在浏览器中本地运行,文件不会上传到服务器。
- 类别
- 计算器
- 使用次数
- 在浏览器中
- 费用
- 免费·无需注册
- 可用性
- 可直接使用
结果日期
—
- 减去的月份数
- —
结果日期 = 日期 − 整数月数;日 = min(原始日,目标月份的最后一天)- 日期是UTC午夜的日历日期;不会应用本地时区或夏令时调整。
- 结果仅用于规划。不会推断公共假日、特定地区的工作规则或公司政策。
- 月份计算会将无效的目标日期限制为有效日期:3月31日减去1个月后为2月28日(闰年为2月29日)。
向前推算月份与三月示例
取原始年份Y、月份M和日期D,其中M的范围为1至12,并设N为非负的月份数。目标月份索引I = 12Y + (M − 1) − N。将I转换为对应的年份和月份,然后选择目标日期min(D, L),其中L是目标月份的长度。跨越年份边界属于同一计算过程。
对于原始日期2025-03-31和N = 1,目标日期位于2025年2月。该月有L = 28天,因此min(31, 28) = 28。结果为2025-02-28,并显示已减去1个月。在此情况下,虽然输入的是1个月,但日历间隔为31天。
使用更早日期作为规划基准
2月的长度遵循美国海军天文台所说明的格里高利历闰年规则(https://aa.usno.navy.mil/faq/leap_years)。工具会选择有效的更早日期;不会生成2月30日,也不会将多出的日期带入3月。
生成多个回溯日期时,请始终将原始里程碑作为基准。若从前一个结果反复减去1个月,缩短后的日期可能会逐步延续。该字段接受0,这会保留输入的里程碑日期,但不接受负数或小数月份数。工具不会对更早日期进行周末调整或营业时间检查,因此在安排准备工作前,请根据实际日程进行确认。
使用方法
- 输入要从中往前推算的里程碑日期。
- 选择要减去的非负整数月数。
- 计算并查看更早的日期,尤其要注意原始日期接近月末的情况。
隐私与限制
日期、时间和结果都会留在浏览器中。不会上传任何输入内容。
相关工具
常见问题
如果更早的月份没有31日,会怎样?
结果会使用更早月份中有效的最后日期。因此,从3月31日向前推算一个月时,会得到2月28日或2月29日,具体取决于年份。
再加上相同的月份数后,会恢复原始日期吗?
如果日期在月末被缩短,可能不会。返回的日期不再记录其日号原本是否更大,因此反向推算时可能会保留缩短后的日号。
减去月份后,里程碑日期的星期几会保持不变吗?
不会。此换算会尽可能保留日号,而不是星期几。如果要得到星期几相同的更早日期,请改为减去完整周数。
免费工具·使用在浏览器中次·无需账户