gpt4 book ai didi

ruby-on-rails - 在 Ruby 中获取两个日期之间的日期对象数组的最有效方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:06 24 4
gpt4 key购买 nike

所以我有两个日期

date_start = Date("2014", "11", "1")
date_stop = Date("2014", "12", "25")

如果我想要这两个日期之间的 Date 对象数组,最有效的方法是什么?

最佳答案

对于日期之间的 1.day 间隔:

(date1..date2).to_a

对于其他间隔,您必须自己填充一个数组。

interval = 2.days

[date1].tap do |arr|
until (arr.last >= date2)
new_date = arr.last + interval

# case 1: if you want the array to end on date2:
arr << [new_date, date2].min

# case 2: if you want the array to be equally spaced:
arr << new_date

# case 3: if you want the array to be equally spaced,
# but values to be within date1 and date2:
if (new_date <= date2)
arr << new_date
else
break
end
end
end

通常您可以在范围上使用step 方法来指定间隔;但在这种情况下不是。例如,以下内容并不像您预期​​的那样工作:

(date1..date2).step(2.days).to_a # outputs: [date1]

关于ruby-on-rails - 在 Ruby 中获取两个日期之间的日期对象数组的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649424/

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