From 2704afaba36f3f7cd4ea1ea43a4db736334d8e68 Mon Sep 17 00:00:00 2001 From: Josh Washburne Date: Mon, 26 Mar 2018 15:28:38 -0400 Subject: [PATCH] Add pretty time display function. --- savepointradio/core/utils.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/savepointradio/core/utils.py b/savepointradio/core/utils.py index a0d0a9d..920c53e 100644 --- a/savepointradio/core/utils.py +++ b/savepointradio/core/utils.py @@ -101,3 +101,27 @@ def create_success_message(parent_model, parent_quantity, child_model, return '{} successfully removed from {}'.format(c_message, p_message) else: return '{} successfully added to {}.'.format(c_message, p_message) + + +def get_pretty_time(seconds): + """ + Displays a human-readable representation of time. + """ + if seconds > 0: + periods = [ + ('year', 60*60*24*365.25), + ('day', 60*60*24), + ('hour', 60*60), + ('minute', 60), + ('second', 1) + ] + strings = [] + for period_name, period_seconds in periods: + if seconds >= period_seconds: + period_value, seconds = divmod(seconds, period_seconds) + strings.append('{} {}{}'.format(period_value, + period_name, + ('s', '')[period_value == 1])) + return ', '.join(strings) + else: + return 'Now'