Не уверен, правильно ли я интерпретирую это ... Где указан будний день, вы найдете следующую доступную дату этого дня? Например, если сегодня вторник, а ваше расписание установлено на четверг, тогда объект времени будет в полночь в этот четверг? Если это так, что-то вроде этого должно работать:
day_difference = @weekday - Time.now.wday
# If the difference is in the past, then add 7 so that it is next week.
if day_difference < 0
day_difference = day_difference + 7
end
next_date = Time.now.midnight + day_difference.days
start_time = next_date + @start.minutes
end_time = next_date + @finish.minutes
Где день недели - значение в вашем объекте Schedule. Еще раз, я не на 100% уверен, что вы спрашиваете. Здесь start_time и end_time являются объектами времени, представляющими следующий день недели с соответствующим количеством добавленных минут.