#!/usr/bin/env python import sys import time TIME_FORMAT= "%H:%M" HOURS_DAY = 8 SECS_DAY = HOURS_DAY * 60 * 60 def usage(name): msg = """ time_sum.py: Sum dates in proper hour time Params: Worked hours Syntax: $ ./time_sum 6:45 13:48 12:44 8:28 14:43 56:28 min. = 7 days, remaining: 0:28 (8 hours/day) """ print(msg) exit(1) def isTimeFormat(input): try: time.strptime(input, TIME_FORMAT) return True except ValueError: return False totalSecs = 0 if __name__ == '__main__': for param in sys.argv[1:]: if not isTimeFormat(param): print("Invalid hour format: %s" % param) help() exit(1) timeParts = [int(s) for s in param.split(':')] totalSecs += (timeParts[0] * 60 + timeParts[1]) * 60 totalDays, remaining = divmod(totalSecs, SECS_DAY) remainingMin, remainingSec = divmod(remaining, (60)) remainingHr, remainingMin = divmod(remainingMin, (60)) totalSecs, sec = divmod(totalSecs, 60) hr, min = divmod(totalSecs, 60) print "%d:%02d hours. = %d days, remaining: %d:%02d (%d hours/day)" % ( hr, min, totalDays, remainingHr, remainingMin, HOURS_DAY)