gpt4 book ai didi

ruby - 使用 delta 遍历 Ruby Time 对象

转载 作者:数据小太阳 更新时间:2023-10-29 06:25:18 25 4
gpt4 key购买 nike

有没有办法在 Ruby 中迭代时间范围并设置增量?

这是我想做的事情的想法:

for hour in (start_time..end_time, hour)
hour #=> Time object set to hour
end

您可以遍历 Time 对象,但它会在两者之间每隔一秒返回一次。我真正需要的是一种设置偏移量或增量(例如分钟、小时等)的方法

这是内置于 Ruby 中的,还是有合适的插件可用?

最佳答案

在 1.9 之前,您可以使用 Range#step:

(start_time..end_time).step(3600) do |hour|
# ...
end

但是,此策略非常慢,因为它会调用 Time#succ 3600 次。反而,正如 dolzenko 在 his answer 中指出的那样,一个更有效的解决方案是使用一个简单的循环:

hour = start_time
while hour < end_time
# ...
hour += 3600
end

如果您使用的是 Rails,则可以将 3600 替换为 1.hour,这明显更具可读性。

关于ruby - 使用 delta 遍历 Ruby Time 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/501253/

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