该在线日期和时间计算器对所有人免费开放,使用无需注册。下面介绍它的功能、工作原理,以及人们常遇到的具体问题与解答。
此计算器的功能
此“天数差”计算器提供三种模式,可使用工具顶部的按钮在它们之间切换。
日期与时间 可精确计算两个时刻之间的差距,精确到秒,考虑两端的钟表时间并可为每一端选择可选的时区。
仅日期 计算两个日历日期之间的差距(当一天中具体时间不重要时),并提供一个切换项以决定是否计入起始日和结束日。
加 / 减 则相反:从一个日期开始,加上或减去若干天、周、月或年以得到目标日期。
三种模式都会提供按年、月、日的完整分解以及累积总计。在“日期与时间”模式下,计算器还可作为小时、分钟、秒计算器,显示两个时刻之间的精确持续时间。它会处理闰年、不同长度的月份和夏令时变更,无需你手动计算这些情况。
适用对象
- 计算截止日期、续约日或通知期
- 找出某人的确切年龄或某个里程碑以来的天数
- 制作工时表或核算班次的应付工时
- 跨时区协调会议或通话
- 任何快速的“还有多少天”或“相差多少小时”类问题
工作原理
在后台,计算器将每个日期和时间转换为一个连续的单一数值再进行运算,而不是在日历上逐格计数。正是这种方法让它能够正确处理不规则的月长、闰年和夏令时转换,而不会悄悄地算错。如果你输入的时间不存在,或由于时钟调整而出现重复时间,计算器会标注出来,而不是静默地产生错误结果。
深入了解
下面各节更详细地说明每种模式的工作方式和处理的边缘情况。展开任意一节以获取更多细节。
如何使用每种模式
日期与时间模式 — 输入起始日期和时间以及结束日期和时间。若两个端点位于不同地点,可在各自的“Time zone (optional)”下为每一端单独设置时区。选择 Calculate Difference 将得到按年、月、日、小时、分钟和秒的完整分解,以及以周、天、小时、分钟和秒为单位的总计。
仅日期模式 — 输入起始日期和结束日期。如果两个端点都应计入总数(例如包含入住当日的租期),勾选“Include end date”。选择 Calculate Difference 可得到总天数和总周数,以及按年、月、日的分解。
加 / 减模式 — 输入起始日期,选择 Add 或 Subtract,输入数量,并选择该数量代表天、周、月或年。选择 Calculate Date 可得到结果日期及其星期几。加或减月份或年份时,会尽量落在目标月的相同日子;若该日不存在(例如从 1 月 31 日加一个月),则回退到该月的最后一个有效日 —— 比如落在 2 月 28 日,闰年则为 29 日。
快捷操作 — Today 和 Now 按钮一键填入当前日期或时间;紧邻结束日期的 Tomorrow 将结束日期设为后一天;Swap 可交换起始和结束的值。结果出现后,Copy Result 会将纯文本摘要复制到剪贴板,Share 则打开设备的分享选项。
为什么手工计日会出错
手工计天会遇到一些持续出现的问题。
各月天数不同。二月大多数年份为 28 天,闰年为 29 天;四月、六月、九月和十一月为 30 天;其余月份为 31 天。假设每个月都和上一个月一样长是最常见的出错来源。
闰年有一个多数人记不清的例外规则:能被 4 整除的年通常是闰年,但整百年的年份只有在能被 400 整除时才是闰年。2000 年是闰年;1900 年不是。任何跨越数年的计算如果不考虑这个规则,可能会少算或多算一天。
起始日是否计入是约定问题而不是纯数学问题。租约通常会把入住日计入;倒计时则通常不计入。这就是为什么本计算器提供明确的“include end date”切换项,而不是去猜测。
夏令时变化会使某一天变成 23 小时或 25 小时而不是 24 小时。这通常不影响纯日数计数,但如果你测量的跨度跨过夏令时切换,则可能会影响小时和分钟的总计。计算器还会检查两种特定边缘情况:某个时间因时钟跳过而不存在,或因时钟回拨而出现两次 —— 这两种情况都会被标注而不是静默地得出相差一小时的错误结果。
作为对任何结果的合理性检查:将天数除以 30 可以得到大致的月数估计,除以 365 可以得到大致的年数估计。如果精确答案与这些估计相差很大,值得复核你输入的年份 —— 在年份上打错字是得到相差一整年但看起来并不明显错误的最简单原因。
计算小时、分钟和工时表
比较两个钟点其实就是减法,唯一要注意的是钟表在午夜会重置。如果结束时间的数值早于开始时间(例如从晚上 10 点到次日早上 6 点的通宵班),计算需要识别日期已经滚动到下一天,而不是返回负数。日期与时间模式会自动处理这点。
对于工资核算,通常需要两种形式的结果:小时和分钟(例如 8 小时 30 分钟)以及小数小时(例如 8.5 小时),因为小数小时可以直接乘以时薪。若有无薪午休或其他休息时间,请从原始时长中减去休息的总时长 —— 例如 9 小时的班次去掉 30 分钟午休,应付时长为 8 小时 30 分钟。
一些常见示例:
| 开始 | 结束 | 总计 | 减去 30 分钟休息后 |
|---|---|---|---|
| 上午 9:45 | 下午 2:30 | 4h 45m | 4h 15m |
| 上午 7:30 | 下午 4:30 | 9h | 8h 30m |
| 上午 8:00 | 下午 5:00 | 9h | 8h 30m |
在 Excel 或 Google Sheets 中做同样的计算
电子表格将日期存为普通数字,这就是简单减法可行的原因:=B2-A2 返回两日期单元格之间的天数(将结果单元格格式设为数字而不是日期,否则显示会不正确)。
要得到年/月/日的分解,DATEDIF 是标准公式:=DATEDIF(A2,B2,"y") 得到年数,"ym" 得到剩余月数,"md" 得到剩余天数。
若只计算工作日(排除周末),NETWORKDAYS(或用于自定义周末模式的 NETWORKDAYS.INTL)可完成此项,并且可以排除提供的节假日清单。
所有这些在 Google Sheets 中的用法相同,Sheets 使用相同的日期序列号系统和相同的函数名 —— Sheets 对手工输入的日期解析通常更宽容一些。
时区与跨地区日程安排
时区字段会对你在每一端输入的日期和时间应用正确的偏移,包括该时区当前是否采用夏令时 —— 两个时区之间的差距并非全年都恒定。它是在差异计算上应用的偏移,而不是一个将某一具体时刻转换为其他地方显示形式的独立转换器。
在一月相差五小时的两个时区在七月可能并不相差五小时,因为并非每个国家都采用夏令时,而采用夏令时的国家往往在开始和结束日期上也不一致。对于跨时区的定期会议,最好在实际日期前再次确认偏移,而不要沿用几个月前算出的偏移。
日期格式也因国家而异 —— 大多数国家为日-月顺序,美国为月-日顺序,软件常用的 ISO 标准为年-月-日。把 03/04 误读为 3 月 4 日而不是 4 月 3 日是一个常见且可避免的错误,确认格式后即可避免。
常见问题
如何根据两个日期计算时间
如何计算两个日期之间的时间?
将两个日期都转换为自一个固定参考点以来的天数表示,然后用较晚的减去较早的,即得到精确的日历天数。从那儿你可以换算为周、月或年以得到日历式的分解,或者在需要排除周末和节假日时应用工作日规则。
如何在 Excel 中计算两个日期之间的时间?
用较晚的日期单元格减去较早的(=B2-A2)以得到天数,或将 DATEDIF 与参数 "y"、"ym" 和 "md" 一起使用以得到年、月、日的分解。将结果单元格格式设为数字而不是日期,否则 Excel 会错误显示。
有没有计算时间的公式?
有。对于日期,先将两者转换为通用的数值尺度后直接相减就行。对于钟点,也是同样的相减,只要在跨过午夜时在结束时间上加上 24 小时,这样结果就不会为负数。
如何计算一天内的时间
如何计算一天内的时间?
将同一 24 小时周期内的起点和终点的小时与分钟相加(即先将两者转换为 24 小时制),再做减法。如果当天含有无薪休息时间,则在获得原始总时长后另行减去这些时间。
9:45 到 2:30 有多少小时?
上午 9:45 到下午 2:30 为 4 小时 45 分钟。如减去 30 分钟休息(短班常见),应付时长为 4 小时 15 分钟。
如何计算两个时间之间的时长
如何算出两个时间之间的时长?
将两个时间都转换为 24 小时格式;如果结束时间的数值小于开始时间(表示跨过午夜),在结束时间上加 24 小时,然后相减。得到的结果可以根据需要转换为小时和分钟,或小数小时。
如何在 Excel 中计算两个时间之间的总时长?
将两个时间以可识别的时间格式输入,然后用较晚的单元格减去较早的单元格。将结果单元格格式设为自定义时间格式,例如 [h]:mm,以便超过 24 小时的总时长能正确显示而不是归零。
如何将时间相乘?
先把时长换算为小数小时(例如把 7:30 表示为 7.5),然后将该小数乘以适用的费率或系数,例如时薪。对小数形式进行乘法可以避免直接以小时和分钟相乘带来的错误。
计算时间的正确方法是什么
时间实际上是如何计算的?
日期和钟点都先转换为单一连续的数值尺度:日期为自参考点以来的天数,钟点为午夜过去的小时或分钟。完成转换后直接相减即可得到它们之间的间隔,从而避开月份长度不一致和钟表午夜重置等问题。
手工计算小时的最佳方法是什么?
先将两个时间转换为 24 小时制,然后按小时和分钟相减;如果结束分钟小于开始分钟,则从小时列借用 60 分钟。最后再减去任何无薪休息时间。
7:30 到 4:30 有多少小时?
上午 7:30 到下午 4:30 为 9 小时。减去常见的 30 分钟午休后,应付时长为 8 小时 30 分钟。
8am 到 5pm 含午休有多少小时?
上午 8:00 到下午 5:00 为 9 小时。减去标准的 30 分钟午休后,应付时长为 8 小时 30 分钟;若减去整整 1 小时午休,则为 8 小时。手工做这类计算原则上并不复杂,但充满了小例外:不同月长、闰年、跨午夜、时区偏移,以及日历日与工作日的差别。任何一项细节都可能使手工计算多或少一天或一小时,这就是为什么即使问题看起来简单也值得使用专用工具。不论具体问题是计算距离截止日期还有多少天、工时表上的小时数,还是从今天起 90 天后的日期,方法都是先把所有项统一到一致的数值尺度,然后让减法完成计算。