gpt4 book ai didi

ruby-on-rails - Ruby:计算2次之间的时间差

转载 作者:行者123 更新时间:2023-12-05 08:14:02 28 4
gpt4 key购买 nike

我想计算2次之间的差值。开始时间:22:00(Rails 将其解释为 2015-12-31 22:00:00 +0100)second_time:02:00(Rails 将其解释为 2015-12-31 02:00:00 +0100)。第二次是4小时后,也就是第二天。有没有办法计算这个差异?

我不能简单地这样做:second_time - first_time,因为这让我相差 22 小时而不是 4 小时。

编辑:一些背景信息:一项工作从 22:00 开始,到第二天的 02:00 结束。因为我只填写了这份工作的表格,所以这次上面两个值分别是 2015-12-31 22:00:00 +0100 和 2015-12-31 02:00:00 +0100。我不希望用户填写包括日期在内的时间。真正的时间差应该是4小时。

所以我真正想要的是计算 22:00 和 02:00(第二天)之间的差异。

最佳答案

我不明白为什么您认为它应该返回 4 小时或为什么它返回 22 小时。 20 小时对于您的示例来说是正确的:

require 'time'

a = Time.parse('2015-12-31 22:00:00 +0100')
b = Time.parse('2015-12-31 02:00:00 +0100')

a - b
#=> 72000.0 # difference in seconds

(a - b) / 3600
#=> 20.0 # difference in hours

更新:您似乎只处理时间部分而不处理实际日期。我假设您必须处理的最大差异是 24 小时:

def time_difference(time_a, time_b)
difference = time_b - time_a

if difference > 0
difference
else
24 * 3600 + difference
end
end

a = Time.parse('2015-12-31 22:00:00 +0100')
b = Time.parse('2015-12-31 02:00:00 +0100')
time_difference(a, b) / 3600
# => 4 # hours

a = Time.parse('2015-12-31 02:00:00 +0100')
b = Time.parse('2015-12-31 22:00:00 +0100')
time_difference(a, b) / 3600
# => 20 # hours

关于ruby-on-rails - Ruby:计算2次之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34548355/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com