Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # time_convert.py
- import datetime
- def parse_input(time):
- try:
- data = time.split(':')
- return tuple(data[:3])
- except Exception as e:
- print(e)
- print("Wrong input format")
- def generate(date_time):
- minutes, seconds = divmod(date_time.seconds, 60)
- hours, minutes = divmod(minutes, 60)
- return hours, minutes, seconds
- def time_converter(time):
- hour, minute, second = parse_input(time)
- total_second = int(hour) * 60 * 60 + int(minute) * 60 + int(second)
- d = datetime.timedelta(seconds=total_second)
- if d.days > 0:
- h, m, s = generate(d)
- result = "{}:{}:{}:{}:".format(d.days, h, m, s)
- elif d.days < 0:
- d = datetime.timedelta(86400) - d
- h, m, s = generate(d)
- result = "-{}:{}:{}:".format(h, m, s)
- else:
- h, m, s = generate(d)
- if h == 0 and m == 0:
- result = "0:"
- else:
- result = "{}:{}:{}:".format(h, m, s)
- print(result)
- return result
- --------------------------------------------------
- # test_time_convert.py
- from time_convert import time_converter
- def test():
- assert time_converter('1:2:3:') == '1:2:3:'
- assert time_converter('1:2:90:') == '1:3:30:'
- assert time_converter('1:2:-90:') == '1:0:30:'
- assert time_converter('48:0:0:') == '2:0:0:0:'
- assert time_converter('0:0:0:') == '0:'
- assert time_converter('0:2:-120:') == '0:'
- assert time_converter('1:-300:2:') == '-3:59:58:'
- if __name__ == '__main__':
- test()
- ---------------------------------------------------
- $ python test_time_convert.py
- 1:2:3:
- 1:3:30:
- 1:0:30:
- 2:0:0:0:
- 0:
- 0:
- -3:59:58:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement