提问人:Rq Bhatti 提问时间:11/1/2022 最后编辑:Holger JustRq Bhatti 更新时间:11/1/2022 访问量:71
如何在 ruby 中获取未来最接近的时间
How to get the future nearest time in ruby
问:
假设我们有当前时间,然后将 60 个 munites 添加到当前时间。
Time.now + 1.hours
# => 2022-11-01 16:47:02.965861 +0500
在那之后,我们得到接下来的半小时,比如17:00:00
我能够从此代码中获取前半小时的时间,但无法找到接下来的半小时时间。
time = Time.now - 30.minutes
# => 2022-11-01 15:22:59.942013 +0500
Time.at((time.to_time.to_i/1800).round * 1800).to_datetime
# => Tue, 01 Nov 2022 15:00:00 +0500
答:
0赞
Abdul Rehman
11/1/2022
#1
据我了解,您想将时间四舍五入到接下来的 30 分钟标记,即如果它介于您想要完成它之间5:01 and 5:29
5:30
为此,你可以做
time = Time.now + 1.hours
ceil_minutes = 30.minutes
Time.at((time.to_f / ceil_minutes).ceil * ceil_minutes)
7赞
Stefan
11/1/2022
#2
如果我理解正确的话,你想映射:
- 15:00-15:29 至 17:00
- 15:30-15:59 至 17:30
t = Time.current
if t.min < 30
t.advance(hours: 2).change(min: 0)
else
t.advance(hours: 1).change(min: 30)
end
评论