Last active
May 10, 2017 15:14
-
-
Save 7h3rAm/a53eac1eea4da887cab9 to your computer and use it in GitHub Desktop.
Seconds to human readable text. Inspired from https://gist.github.com/erickpatrick/3039081
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
def sec_to_human(secs): | |
units = dict({ | |
7*24*3600: "week", | |
24*3600: "day", | |
3600: "hour", | |
60: "minute", | |
1: "second" | |
}) | |
if secs <= 0: return "0 seconds" | |
s = list() | |
for divisor, name in sorted(units.iteritems(), reverse=True): | |
quot=int(secs/divisor) | |
if quot: | |
if abs(quot) > 1: | |
s.append("%s %ss" % (quot, name)) | |
else: | |
s.append("%s %s" % (quot, name)) | |
secs -= quot * divisor | |
return " ".join(s) |
Thanks for the share! I created a similar gist but it's not as good as yours. Thank you 👍
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Test output:
454 seconds = 7 minutes 34 seconds
331 seconds = 5 minutes 31 seconds
84 seconds = 1 minute 24 seconds
2764 seconds = 46 minutes 4 seconds
325 seconds = 5 minutes 25 seconds
221 seconds = 3 minutes 41 seconds
259 seconds = 4 minutes 19 seconds
196 seconds = 3 minutes 16 seconds
77 seconds = 1 minute 17 seconds
2053 seconds = 34 minutes 13 seconds
103 seconds = 1 minute 43 seconds
168 seconds = 2 minutes 48 seconds
155 seconds = 2 minutes 35 seconds
484 seconds = 8 minutes 4 seconds
703 seconds = 11 minutes 43 seconds
161 seconds = 2 minutes 41 seconds
2974 seconds = 49 minutes 34 seconds
2254 seconds = 37 minutes 34 seconds
440 seconds = 7 minutes 20 seconds
133 seconds = 2 minutes 13 seconds
157 seconds = 2 minutes 37 seconds
88 seconds = 1 minute 28 seconds
492 seconds = 8 minutes 12 seconds
252 seconds = 4 minutes 12 seconds
89 seconds = 1 minute 29 seconds
295 seconds = 4 minutes 55 seconds
79 seconds = 1 minute 19 seconds
894 seconds = 14 minutes 54 seconds
2305 seconds = 38 minutes 25 seconds
722 seconds = 12 minutes 2 seconds
999999999 = 1653 weeks 3 days 1 hour 46 minutes 39 seconds