Skip to content

Instantly share code, notes, and snippets.

@mesiriak
Last active April 16, 2021 09:39
Show Gist options
  • Save mesiriak/2b455d80e21e0cfc559d5bf6f743ecb6 to your computer and use it in GitHub Desktop.
Save mesiriak/2b455d80e21e0cfc559d5bf6f743ecb6 to your computer and use it in GitHub Desktop.
Codewars. Python
def format_duration(start_number):
print(start_number)
_seconds = start_number % 60
_minutes = start_number // 60 % 60
_hours = start_number % (3600*24) // 3600
_days = start_number % (3600*24*365) // (3600*24)
_years = start_number // (3600*24*365)
mass_of_results = []
counter = 1
checker_singular = {5:" second, ", 4:" minute, ", 3:" hour, ", 2:" day, ", 1:" year, "}
checker_plural = {5:" seconds, ", 4:" minutes, ", 3:" hours, ", 2:" days, ", 1:" years, "}
result = ""
if start_number == 0:
return "now"
for i in(_years,_days,_hours,_minutes,_seconds):
if i == 1:
result += f"{i}{checker_singular.get(counter)}"
elif i > 1:
result += f"{i}{checker_plural.get(counter)}"
counter += 1
result = result.split()
if len(result) > 2:
result[len(result)-1] = result[len(result)-1][:len(result[len(result)-1])-1:]
result[len(result)-3] = result[len(result)-3].replace(","," and")
else:
result[len(result)-1] = result[len(result)-1][:len(result[len(result)-1])-1:]
for i in range(len(result)):
if i != len(result)-1:
result[i] += " "
return "".join(result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment