Solution1: Using python 'time' module strftime function.
Python 2.5.2 (r252:60911, Jul 22 2009, 15:35:03)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.strftime('%H:%M:%S', time.gmtime(7302))
'02:01:42'
>>> time.strftime('%H:%M:%S', time.gmtime(86399))
'23:59:59'
>>> time.strftime('%H:%M:%S', time.gmtime(86405))
'00:00:05'
So as seen above this solution works only for num seconds < 1 day (86400 seconds)
Solution2: Using python datetime module, timedelta object.
>>> import datetime
>>> x = datetime.timedelta(seconds=7302)
>>> str(x)
'2:01:42'
>>> x = datetime.timedelta(seconds=86399)
>>> str(x)
'23:59:59'
>>> x = datetime.timedelta(seconds=86405)
>>> str(x)
'1 day, 0:00:05'
Solution3: Using normal division in python
import sys
secs = int(sys.argv[1])
mins = secs // 60
hrs = mins // 60
#hh:mm:ss
print "%02d:%02d:%02d" % (hrs, mins % 60, secs % 60)
#mm:ss
print "%02d:%02d" % (mins, secs % 60)
Executing it:
$ python timeconv.py 7302
02:01:42
121:42
$ python timeconv.py 86399
23:59:59
1439:59
$ python timeconv.py 86405
24:00:05
1440:05
0 Comments:
Post a Comment