BlinkenArea - GitList
Repositories
Blog
Wiki
stage_director
Code
Commits
Branches
Tags
Search
Tree:
8ab7413
Branches
Tags
master
stage_director
time_fmt.py
start making player work - playing a song moves slider now
Stefan Schuermans
commited
8ab7413
at 2013-11-22 20:44:32
time_fmt.py
Blame
History
Raw
#! /usr/bin/env python """time format converter converts between time in seconds as floating point value and time as human-readable string in hours, minutes and seconds <time string> = ((<hours>:)?<minutes>:)?<seconds> <hours> = [0-9]+ <minutes> = [0-9]+ <seconds> = [0-9]+(.[0-9]+)""" def sec2str(sec): """convert time in seconds to human-readable time string""" sign = "" sec100 = round(sec * 100) if sec100 < 0: sign = "-"; sec100 = -sec100; sec1 = sec100 // 100 sec100 = sec100 % 100 minu = sec1 // 60 sec1 = sec1 % 60 hour = minu // 60 minu = minu % 60 return "%s%u:%02u:%02u.%02u" % (sign, hour, minu, sec1, sec100) def str2sec(str): """convert a human readable time string into time in seconds""" total = 0 section = 0 sign = 1 decimal = 1 for c in str: if c == ":": total = (total + sign * section) * 60 section = 0 sign = 1 decimal = 1 elif c == "-": sign = -sign elif c == ".": decimal = 0.1 elif c >= "0" and c <= "9": if decimal < 1: section = section + int(c) * decimal decimal = decimal * 0.1 else: section = section * 10 + int(c) total = total + sign * section return total