Obliczanie godzin

Witam,

mam taki problem. W modelu trzymam 3 informacje:

start_time - HH:MM
end_time - HH:MM
frequency - MM

Jak w Ruby obliczyc uzywajac informacji frequency ktora jest zapisywana w minutach wszystkie godziny pomiedzy start_time i end_time uzywajac frequency, czyli np:

start_time - 8:20 AM
end_time - 9:35 AM
frequency - 5 minut

wiec wszystkie mozliwe godziny to:

8:25 AM, 8:30 AM, 8:35 AM … 9.35 AM

Jak najlepiej to zaimplementowac? Nie chce takiej tablicy z godzinami nigdzie zapisywac. Czy jest sens za kazdym razem kiedy bede potrzebowal informacji o godzinach obliczac te godziny ? Gdzie moge najwydajnie przetrzymywac takie dane. Kazdego dnia beda sie one zmienialy.

Ciężko iterować po datach, ale możesz iterować po liczbach - użyłem tutaj API rails do obliczania minuty -> sekundy

[42] pry(main)> starttime = Time.parse("8:20 AM")
=> 2016-04-22 08:20:00 +0200
[43] pry(main)> endtime = Time.parse("9:35 AM")
=> 2016-04-22 09:35:00 +0200
[44] pry(main)> (starttime.to_i..endtime.to_i).step(5.minutes).each {|time| puts Time.at(time) }
2016-04-22 08:20:00 +0200
2016-04-22 08:25:00 +0200
2016-04-22 08:30:00 +0200
2016-04-22 08:35:00 +0200
2016-04-22 08:40:00 +0200
2016-04-22 08:45:00 +0200
2016-04-22 08:50:00 +0200
2016-04-22 08:55:00 +0200
2016-04-22 09:00:00 +0200
2016-04-22 09:05:00 +0200
2016-04-22 09:10:00 +0200
2016-04-22 09:15:00 +0200
2016-04-22 09:20:00 +0200
2016-04-22 09:25:00 +0200
2016-04-22 09:30:00 +0200
2016-04-22 09:35:00 +0200

Dziekuje za pomoc.

Pozdrawiam

można operować czasem bez konwersji na inta

def freq
  time1 = Time.now
  time2 = Time.now + 3.hours
  freq  = 15
    while time1 < time2 do
        time1 = time1 + freq.minutes
        puts time1.strftime("%H:%M")
    end
end

Ale to co, walidujesz czas? - ma się wstrzelić w 8:25. 8:30, ale nie 8:32 itd.?

time1 = Time.parse(“8:20”)