38 lines
1.0 KiB
Ruby
38 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module TimeHelper
|
|
def time_interval_in_words(interval_in_seconds)
|
|
interval_in_seconds = interval_in_seconds.to_i
|
|
minutes = interval_in_seconds / 60
|
|
seconds = interval_in_seconds - minutes * 60
|
|
|
|
if minutes >= 1
|
|
if seconds % 60 == 0
|
|
pluralize(minutes, "minute")
|
|
else
|
|
[pluralize(minutes, "minute"), pluralize(seconds, "second")].to_sentence
|
|
end
|
|
else
|
|
pluralize(seconds, "second")
|
|
end
|
|
end
|
|
|
|
def date_from_to(from, to)
|
|
"#{from.to_s(:short)} - #{to.to_s(:short)}"
|
|
end
|
|
|
|
def duration_in_numbers(duration_in_seconds, allow_overflow = false)
|
|
if allow_overflow
|
|
seconds = duration_in_seconds % 1.minute
|
|
minutes = (duration_in_seconds / 1.minute) % (1.hour / 1.minute)
|
|
hours = duration_in_seconds / 1.hour
|
|
|
|
"%02d:%02d:%02d" % [hours, minutes, seconds]
|
|
else
|
|
time_format = duration_in_seconds < 1.hour ? "%M:%S" : "%H:%M:%S"
|
|
|
|
Time.at(duration_in_seconds).utc.strftime(time_format)
|
|
end
|
|
end
|
|
end
|