Во-первых, вместо split
строки можно использовать Time#parse
метод .Убедитесь, что вы также нуждаетесь в библиотеке.
require 'time'
=> true
Time.parse('15h 37m 5s')
=> 2018-05-27 15:37:05 +0300
Возвращает новый объект класса Время и имеет несколько действительно полезных для вас методов - #sec, #min, #hour
.
time = Time.parse('15h 37m 5s')
time.sec #=> 5
time.min #=> 37
time.hour #=> 15
Добавление одного объекта Time
к другому довольно просто, поскольку вы можете сделать это только с помощью seconds
.Простое решение для текущей проблемы было бы:
def next_run
time = Time.parse('15h 37m 5s')
seconds_to_add = time.hour * 3600 + time.min * 60 + time.sec
Time.now + seconds_to_add
end
Надеюсь, это ответит на ваш вопрос!:)