我有以下代码,它根据“全球”工作日和时间创建一组用户。
def current_time
# server_time = Time.now
server_time = Time.local(2013,8,19,8,30) # for time simulation
local_offset = (2 * 60 * 60)
local_time = server_time + local_offset
end
def hours_mon_to_thurs?(date)
["Monday", "Tuesday", "Wednesday", "Thursday"].include?(date.strftime("%A")) && ("08:30"..."17:00").include?(date.strftime("%H:%M"))
end
def hours_fri?(date)
["Friday"].include?(date.strftime("%A")) && ("08:30"..."15:00").include?(date.strftime("%H:%M"))
end
def hours_lunch?(date)
!("12:00"..."13:00").include?(date.strftime("%H:%M"))
end
if hours_mon_to_thurs?(current_time) && hours_lunch?(current_time)
p "[USER1, USER2]"
elsif hours_fri?(current_time) && hours_lunch?(current_time)
p "USER2"
else
p "no users"
end
此代码有效,但我想更改数组的创建方式,以便每个用户都有工作日和时间作为属性,如果它们可用,则应将它们添加到数组中。让我举个例子。
用户 1 - 办公时间
周一 08:30 - 12:00, 13:00 - 17:00
周二 08:30 - 12:00, 13:00 - 17:00
周三 08:30 - 12:00, 13:00 - 17:00
星期四 08:30 - 12:00, 13:00 - 17:00
用户 2 - 办公时间
周二 08:30 - 12:00, 13:00 - 17:00
星期四 08:30 - 12:00, 13:00 - 17:00
周五 08:30 - 12:00, 13:00 - 15:00
定义了每个用户的办公时间后,我希望使用与上面示例中类似的方法。像这样的东西:
- 对于每个用户
- 如果当前时间在用户的办公时间内
- 将用户添加到数组
- 否则,如果当前时间不在用户的办公时间内
- 数组为空
我目前没有使用数据库,并且我不知道以匹配当前时间是否在用户的时间范围内然后将它们添加到数组的方式来构造每个用户的办公时间的最佳方法。