gpt4 book ai didi

ruby-on-rails - 用一系列时间增量填充选择,加上其他选项

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

使用 Ruby on Rails,我使用给定的增量(例如每 30 分钟)用时间填充“选择”。目前我正在 YAML 文件中写出所有的可能性,但我觉得有一种更巧妙的方法。我想我想提供一个开始时间、一个结束时间、一个增量,并且目前只提供一个名为“关闭”的选项(想想“business_hours”)。所以,我的选择可能会显示:

'Closed'

5:00am

5:30am

6:00am

...

[all the way to]...

11:30pm

谁能想出更好的方法,或者只是将它们全部“拼写”出来的最佳方法?

最佳答案

此答案基于@emh 的答案。

def create_hours(parameters)
start_time = parameters[:start_time] ? parameters[:start_time] : 0
end_time = parameters[:end_time] ? parameters[:end_time] : 24.hours
increment = parameters[:increment] ? parameters[:increment] : 30.minutes
Array.new(1 + (end_time - start_time)/increment) do |i|
(Time.now.midnight + (i*increment) + start_time).strftime("%I:%M %p")
end
end

你可以这样使用它:

create_hours(:start_time => 5.hours, :end_time => 23.hours)
=> ["05:30 AM", "06:00 AM", "06:30 AM", "07:00 AM", "07:30 AM", "08:00 AM",
"08:30 AM", "09:00 AM", "09:30 AM", "10:00 AM", "10:30 AM", "11:00 AM",
"11:30 AM", "12:00 PM", "12:30 PM", "01:00 PM", "01:30 PM", "02:00 PM",
"02:30 PM", "03:00 PM", "03:30 PM", "04:00 PM", "04:30 PM", "05:00 PM",
"05:30 PM", "06:00 PM", "06:30 PM", "07:00 PM", "07:30 PM", "08:00 PM",
"08:30 PM", "09:00 PM", "09:30 PM", "10:00 PM", "10:30 PM", "11:00 PM"]

要添加“已关闭”,请使用:

["closed"] + create_hours(:start_time => 5.hours, :end_time => 23.hours)

您还可以传递 :increment => 15.minutes - 默认设置为 30.minutes

关于ruby-on-rails - 用一系列时间增量填充选择,加上其他选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286716/

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