Мне нужен скрипт разницы во времени для использования с mencoder
(его --endpos
относительно), и мое решение - вызвать скрипт Python:
$ ./timediff.py 1:10:15 2:12:44
1:02:29
доли секунд также поддерживаются:
$ echo "diff is `./timediff.py 10:51.6 12:44` (in hh:mm:ss format)"
diff is 0:01:52.4 (in hh:mm:ss format)
и он может сказать, что разница между 200 и 120 составляет 1 ч 20 м:
$ ./timediff.py 120:0 200:0
1:20:0
и может преобразовывать любое (возможно, дробное) число секунд, минут или часов в чч: мм: сс
$ ./timediff.py 0 3600
1:00:0
$ ./timediff.py 0 3.25:0:0
3:15:0
timediff.py:
#!/usr/bin/python
import sys
def x60(h,m):
return 60*float(h)+float(m)
def seconds(time):
try:
h,m,s = time.split(':')
return x60(x60(h,m),s)
except ValueError:
try:
m,s = time.split(':')
return x60(m,s)
except ValueError:
return float(time)
def difftime(start, end):
d = seconds(end) - seconds(start)
print '%d:%02d:%s' % (d/3600,d/60%60,('%02f' % (d%60)).rstrip('0').rstrip('.'))
if __name__ == "__main__":
difftime(sys.argv[1],sys.argv[2])