|
@@ -378,19 +378,16 @@ def secs_to_ms(secs):
|
|
return '{:02d}:{:02d}'.format(secs//60, secs % 60)
|
|
return '{:02d}:{:02d}'.format(secs//60, secs % 60)
|
|
|
|
|
|
def format_elapsed_hr(t,now=None,cached={}):
|
|
def format_elapsed_hr(t,now=None,cached={}):
|
|
- now = now or time.time()
|
|
|
|
- e = int(now - t)
|
|
|
|
|
|
+ e = int((now or time.time()) - t)
|
|
if not e in cached:
|
|
if not e in cached:
|
|
abs_e = abs(e)
|
|
abs_e = abs(e)
|
|
- d = abs_e // 86400 # 60 * 60 * 24
|
|
|
|
- h = abs_e // 3600 % 24
|
|
|
|
- m = abs_e // 60 % 60
|
|
|
|
- cached[e] = '{d}{h}{m} minute{M} {w}'.format(
|
|
|
|
- d = '{} day{}, '.format(d,suf(d)) if d else '',
|
|
|
|
- h = '{} hour{}, '.format(h,suf(h)) if h else '',
|
|
|
|
- m = m,
|
|
|
|
- M = suf(m),
|
|
|
|
- w = 'ago' if e > 0 else 'in the future' ) if (h or m) else 'just now'
|
|
|
|
|
|
+ cached[e] = ', '.join(
|
|
|
|
+ '{} {}{}'.format(n,desc,suf(n)) for desc,n in (
|
|
|
|
+ ('day', abs_e // 86400),
|
|
|
|
+ ('hour', abs_e // 3600 % 24),
|
|
|
|
+ ('minute', abs_e // 60 % 60),
|
|
|
|
+ ) if n
|
|
|
|
+ ) + (' ago' if e > 0 else ' in the future') if abs_e // 60 else 'just now'
|
|
return cached[e]
|
|
return cached[e]
|
|
|
|
|
|
def is_int(s):
|
|
def is_int(s):
|