gpt4 book ai didi

ruby - 分辨率不同于一日的日期时间范围

转载 作者:太空宇宙 更新时间:2023-11-03 17:27:35 25 4
gpt4 key购买 nike

如何获取符合以下条件的 DateTime 对象列表:

  • 它们在 DateTime 的两个实例之间
  • 它们落在几分之一小时/分钟内。例如。整整一刻钟

在积极支持下,可能的解决方案是:

(my_datetime_ob_a.to_i .. my_datetime_ob_b.to_i).each { |timestamp|
puts timestamp if (timestamp % (3600/4) == 0)
}

这不太好:迭代太多,转换太多(您需要将时间戳重新转换为 DateTime 对象。

最佳答案

如果您运行的是 1.9,则可以按以下方式使用 Date#step:

require 'date'
t1 = DateTime.now
t2 = t1+3 # three days from now
# 0.25 being 1/4 of a day - 6 hours
p t1.step(t2, 0.25).to_a
#=>[#<DateTime: 2010-07-24T21:49:38+02:00 (7857287443636107/3200000000,1/12,2299161)>, #<DateTime: 2010-07-25T03:49:38+02:00 (2455402.57613628,1/12,2299161)>, #<DateTime: 2010-07-25T09:49:38+02:00 (2455402.82613628,1/12,2299161)>, #<DateTime: 2010-07-25T15:49:38+02:00 (2455403.07613628,1/12,2299161)>, #<DateTime: 2010-07-25T21:49:38+02:00 (2455403.32613628,1/12,2299161)>, #<DateTime: 2010-07-26T03:49:38+02:00 (2455403.57613628,1/12,2299161)>, #<DateTime: 2010-07-26T09:49:38+02:00 (2455403.82613628,1/12,2299161)>, #<DateTime: 2010-07-26T15:49:38+02:00 (2455404.07613628,1/12,2299161)>, #<DateTime: 2010-07-26T21:49:38+02:00 (2455404.32613628,1/12,2299161)>, #<DateTime: 2010-07-27T03:49:38+02:00 (2455404.57613628,1/12,2299161)>, #<DateTime: 2010-07-27T09:49:38+02:00 (2455404.82613628,1/12,2299161)>, #<DateTime: 2010-07-27T15:49:38+02:00 (2455405.07613628,1/12,2299161)>, #<DateTime: 2010-07-27T21:49:38+02:00 (2455405.32613628,1/12,2299161)>]

关于ruby - 分辨率不同于一日的日期时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325647/

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