Ruby 如何将时间量转换为秒?
假设某人花了3分45秒完成一项任务 我认为是3点45分 但我需要做的是,假设我得到了Ruby 如何将时间量转换为秒?,ruby,time,Ruby,Time,假设某人花了3分45秒完成一项任务 我认为是3点45分 但我需要做的是,假设我得到了3:45,将其转换为所花的秒数 所以当给出3:45时,我想把它转换成225 这需要使用Ruby 1.8.7 pry(main)> a = "3:45".split(":") => ["3", "45"] pry(main)> a[0].to_i*60 + a[1].to_i => 225 (当然,这是一种方法。) (当然是用一种方法来包装的。)你可以使用Dave建议的东西,或者如果你需要
3:45
,将其转换为所花的秒数
所以当给出3:45
时,我想把它转换成225
这需要使用Ruby 1.8.7
pry(main)> a = "3:45".split(":")
=> ["3", "45"]
pry(main)> a[0].to_i*60 + a[1].to_i
=> 225
(当然,这是一种方法。)
(当然是用一种方法来包装的。)你可以使用Dave建议的东西,或者如果你需要更多的东西,有一种方法可以做到这一点 它看起来像:
001:0> ChronicDuration.parse("3:45")
225
你可以使用Dave建议的东西,或者如果你需要更多的东西,有一个可以做这些东西的 它看起来像:
001:0> ChronicDuration.parse("3:45")
225
我会小心地在这里重新发明轮子。虽然您可能会假设只有几分钟和几秒钟,并且始终使用相同的格式,但使用更健壮的格式更安全
看看吧,这是一个解析已用时间的宝石。我会小心地在这里重新发明轮子。虽然您可能会假设只有几分钟和几秒钟,并且始终使用相同的格式,但使用更健壮的格式更安全
def time_to_seconds(str)
time_in = []
time_in = str.split(":").reverse
asec = 0
secs = [1, 60, 60*60, 60*60*24]
time_in.size.times do {|i|
asec += secs[i].to_i * time_in[i].to_i
end
sec
end
检查一下,这是一个解析经过时间的宝石。我会使用乘法。小时呢?我会用乘法。那么小时呢?用它,你如何解释可能包含一个小时(
1:37:49
)?有时时间会在那里,有时不会。@Shpigford检查数组长度。但是我支持乔尔和艾米丽,没有理由用手来做这件事。用这个,你如何解释可能包含一小时(1:37:49
)的原因?有时时间会在那里,有时不会。@Shpigford检查数组长度。但我和乔尔和艾米丽在一起——没有理由用手来做这件事。+1,更好的主意(这是一个好主意;这是一个长期处理我大部分时间需求的好主意)。+1,更好的主意(这是一个长期处理我大部分时间需求的好主意)。
def time_to_seconds(str)
time_in = []
time_in = str.split(":").reverse
asec = 0
secs = [1, 60, 60*60, 60*60*24]
time_in.size.times do {|i|
asec += secs[i].to_i * time_in[i].to_i
end
sec
end