日期与时间时长

对比计算

下载

包含本次计算的输入与结果,以及您对比过的所有附加计算。

日期时长的计算方法

两个日期之间的时长是分隔它们的确切时间跨度 — 以精确的天数表示,或分解为周、小时和分钟。 输入一个开始日期和一个结束日期 — 每个都可以选择加上时间 — 此计算器将精确显示它们之间相隔多长时间:以精确的天/时/分时长表示,以及以整周和剩余天数表示的同一跨度,这通常比一个庞大的原始天数更容易想象。将时间字段留空可获得纯粹的“两个日期之间的天数”答案,或填写时间以获得精确到分钟的时长 — 这对从倒计时某个活动到计算一次轮班、旅行或会议实际持续了多久都很有用。

公式

计算是一个简单的减法,以分钟表示,然后再分解回去:

总分钟数=结束时刻开始时刻\text{总分钟数} = \vA{\text{结束时刻}} - \vB{\text{开始时刻}}

然后将该总数拆分为整天数、剩余小时数和剩余分钟数 — 就像数字倒计时器将秒数拆分为小时、分钟和秒一样。天数进一步拆分为整周数和剩余天数:

  • 周数: 总天数÷7\vC{\text{总天数}} \div 7,向下取整。
  • 剩余天数: 总天数mod7\vC{\text{总天数}} \bmod 7(去掉整周后剩下的天数)。

为开始和结束都输入完全相同的日期和时间,会正确得出 0 的时长 — 一个时刻与其自身之间没有经过的时间。将两个时间字段都留空会将每个日期视为午夜,这正好重现了计算器最初的“两个日期之间的天数”行为。

举例说明

2024 年 1 月 1 日2024 年 1 月 31 日(未输入时间):

  1. 总天数:311=3031 - 1 = \vC{30}
  2. 周数:30÷7=4\vC{30} \div 7 = 4,有余数。
  3. 剩余天数:30mod7=2\vC{30} \bmod 7 = 2

30 天,或 4 周零 2 天

添加时间会改变精度,而不是方法:从 1 月 1 日晚上 10:301 月 3 日凌晨 1:15,时长为 1 天 2 小时 45 分钟 — 相同的减法,只是精确到分钟,而不是在整天处停止。

需要考虑的关键因素

  • 日期顺序颠倒或为负值,仍会给出有意义的结果。 如果结束日期早于开始日期,本计算器会照常报告二者之间的时长,而不管先后顺序——这既方便查“这是多久以前的事”,也方便查“距离这个日期还有多久”。如果您想以相反方向表述结果,交换两个日期即可。
  • 除非您自行处理,否则不会考虑时区差异。 如果开始和结束的时刻处于不同时区,将两个时间都当作同一时区输入会得到错误的时长——请先将两个时间换算到同一时区,或使用时区计算器来处理换算。
  • 本计算器统计的是经过的日历天数,而不是工作日。 跨越周末或节假日的时长,会将每个日历日一视同仁地计入——如果您具体想问的是工作日的问题,请改用工作日计算器。
  • 闰年和不同月份的天数差异会被自动处理。 本计算器不需要为闰年的2月或天数不同的月份设置单独规则——减法直接针对真实的日历日期进行运算,因此这些因素已经被自动纳入考虑。

常见错误

  • 不小心把开始日期和结束日期都算作整天。 手动计算时很容易数错,把1月1日到3日算成”3天”——实际经过的时间是2天,就像日历每经过一天只前进一次,而不是两次。
  • 将实际处于不同时区的两个时间当作同一时区输入。 这不会产生错误——只会悄悄地给出一个偏差了两个时区之差的错误时长,因为计算器无从得知这两个时间原本是为不同地点设定的。
  • 在真正想问的是工作日问题时使用本计算器。 跨越周末或节假日的时长,在这里会将每个日历日一视同仁地计入——如果需要排除周末和节假日,工作日计算器才是正确的工具。

有用的信息

将两个时间字段都留空会把每个日期视为恰好午夜,因此以这种方式计算出的时长总是整数天——当真正想问的是”两者之间相隔多少个日历天”而不是”多少小时”时,这很有用。一旦加入了真实时间,同样的两个日历日期就可能产生一个不是整齐天数的时长(例如一天多加几个小时)。如果结果与简单天数计算所暗示的相比”偏差”了几个小时,通常意味着本应只有日期重要的情况下,某个时间字段被误填了。

来源: 维基百科:公历.

常见问题

这是否将开始日期和结束日期都算作完整的一天?

结果是两个日期之间经过的天数 -- 输入两次相同的日期得到 0 天,这与“距今天数”或“已过天数”的常规含义一致。

我必须输入时间吗?

不需要 -- 时间字段是可选的。将其留空会将两个时刻都视为午夜,这正是纯粹“两个日期之间的天数”的行为。在任一或两个字段中添加时间,则可以得到精确到分钟的时长。

这是否考虑不同的时区?

不会自动考虑 -- 如果您的开始和结束时刻处于不同的时区,直接按原样输入两个时间会得到不正确的时长。请先将两个时间转换为同一时区,或使用时区计算器在此处输入时间之前完成转换。

这是计算工作日还是每个日历日?

这计算的是每一个日历日,包括周末和节假日。如果您需要仅计算工作日,请使用专门为此设计的工作日计算器。

为什么我手动计算的结果可能与此计算器的结果相差一天?

手动计算时经常会不小心把开始日期和结束日期都算作整天,例如把1月1日到3日算成3天。此计算器报告的是两个时刻之间实际经过的时间,因此1月1日到3日正确地得出2天——就像日历每经过一天只前进一次,而不是两次。

我可以用它来查看某件事发生在多久以前,而不只是倒计时到未来的某个日期吗?

可以——即使输入的结束日期早于开始日期,仍会得出正确且有意义的时长,因此它对“还有多久”和“已经过去多久”这两类问题同样适用。如果您希望结果按相反方向表述,只需交换两个日期即可。

夏令时会影响计算出的时长吗?

如果您输入的两个时间处于同一时区,并且该时区在这两个时刻之间发生了夏令时切换,那么实际经过的时钟时间可能会比简单的日期相减所暗示的多一小时或少一小时。此计算器是按输入的时间原样进行计算的,因此如果您的日期范围跨越了夏令时切换,请自行手动加以考虑。

确认您的年龄

为了创建账户,请告诉我们您的出生月份和年份。