Мне нужна помощь!У меня проблема с такой логикой для моего приложения планирования.Учитывая время между 8:00 и 12:00, и есть расписание, установленное на 9:00 - 10:00, как я могу извлечь свободное время, которое составляет 8:00 - 9:00 и 10:00 - 12:00?
Вот код:
class VacantTimeFinder
def initialize(args={})
@schedules = args[:schedules]
@eight_am = DateTime.new(2000,1,1,8,0,0,DateTime.now.zone)
@twelve_pm = DateTime.new(2000,1,1,12,0,0,DateTime.now.zone)
end
def find!
vacant_times = []
@schedules.each do |schedule|
starts_at = schedule.starts_at
ends_at = schedule.ends_at
if (starts_at..ends_at).overlaps?(@eight_am..@twelve_am)
#logic goes here...
end
end
vacant_times #formated as ["8AM - 9AM", "10AM - 12PM"]
end
end
Или любые другие решения будут очень цениться.