Здесь я пытаюсь пропустить предопределенные праздники в массиве, но цикл в бесконечном.Ruby пропуская выходные и праздничные дни
@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? вместо. – Syl