Skip to content

Instantly share code, notes, and snippets.

@blarosen95
Created May 31, 2018 17:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blarosen95/d03c294ab1ca621ec1f3d8be54794a31 to your computer and use it in GitHub Desktop.
Save blarosen95/d03c294ab1ca621ec1f3d8be54794a31 to your computer and use it in GitHub Desktop.
def format_duration(n)
return "now" if n == 0
minutes, seconds = n.divmod(60)
hours, minutes = minutes.divmod(60)
days, hours = hours.divmod(24)
years, days = days.divmod (365)
years == 0 ? tri_years = 0 : years == 1 ? tri_years = 1 : tri_years = 2
days == 0 ? tri_days = 0 : days == 1 ? tri_days = 1 : tri_days = 2
hours == 0 ? tri_hours = 0 : hours == 1 ? tri_hours = 1 : tri_hours = 2
minutes == 0 ? tri_minutes = 0 : minutes == 1 ? tri_minutes = 1 : tri_minutes = 2
seconds == 0 ? tri_seconds = 0 : seconds == 1 ? tri_seconds = 1 : tri_seconds = 2
plural_singular_arr = []
plural_singular_arr << "years" if tri_years == 2
plural_singular_arr << "year" if tri_years == 1
plural_singular_arr << "days" if tri_days == 2
plural_singular_arr << "day" if tri_days == 1
plural_singular_arr << "hours" if tri_hours == 2
plural_singular_arr << "hour" if tri_hours == 1
plural_singular_arr << "minutes" if tri_minutes == 2
plural_singular_arr << "minute" if tri_minutes == 1
plural_singular_arr << "seconds" if tri_seconds == 2
plural_singular_arr << "second" if tri_seconds == 1
units_arr = []
units_arr << "years" if tri_years != 0
units_arr << "days" if tri_days != 0
units_arr << "hours" if tri_hours != 0
units_arr << "minutes" if tri_minutes != 0
units_arr << "seconds" if tri_seconds != 0
temp_arr = units_arr.map {|unit| binding.local_variable_get unit}
temp_str = ""
units_arr.each_index {|index|
temp_str += "#{temp_arr[index]} #{plural_singular_arr[index]}, " if index < units_arr.length - 2
temp_str += "#{temp_arr[index]} #{plural_singular_arr[index]} and " if index == units_arr.length - 2
temp_str += "#{temp_arr[index]} #{plural_singular_arr[index]}" if index == units_arr.length - 1
}
temp_str
end
puts format_duration(63252122)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment