【发布时间】:2016-03-13 13:11:12
【问题描述】:
这里我试图跳过数组中预定义的假期,但循环是无限的。
@holidays = [DateTime.new(2016,03,15), DateTime.new(2016,03,17)]
def skip_holidays(date)
date += 1
while @holidays.map{ |holiday| holiday == date} do
date = date.next_day.change(hour: 9)
end
date
end
skip_holidays(DateTime.new(2016,3,14))
但是,这个循环在这里完美运行
def skip_weekends(date)
date += 1
while (date.saturday?) || (date.sunday?) do
date = date.next_day.change(hour: 9)
end
date
end
skip_weekends(DateTime.new(2016,3,14))
这是怎么回事以及如何绕过它?
【问题讨论】:
-
@holiday.map 输出一个数组。 [false,true] 被认为是真的。甚至 [fasle,false] 也会被评估为真条件。尝试使用@holidays.include?而是。
标签: ruby loops datetime activesupport