#!/usr/bin/python # the imports import datetime import time import sys import signal import sys # create a signnal handler for ctrl-c so we exit gracefully def signal_handler(signal, frame): sys.exit(0) # set the signal handler signal.signal(signal.SIGINT, signal_handler) # do we have enough arguments if len(sys.argv) == 1: print "Usage:", sys.argv[0], "month day hour minute [year]" sys.exit(2) # set the leave time leave_month = int(sys.argv[1]) leave_day = int(sys.argv[2]) leave_hour = int(sys.argv[3]) leave_minute = int(sys.argv[4]) # did we get a year? if len(sys.argv) == 6: leave_year = int(sys.argv[5]) else: leave_year = datetime.datetime.now().year # create a date tiem object with the leave date work_leave_day = datetime.datetime(leave_year, leave_month, leave_day, leave_hour, leave_minute, 0) # loop while True: # how far apart are we from leaving? difference = work_leave_day - datetime.datetime.now() # if we have less than 3 days left, only display hours if (difference.days < 3): Days = "Stu" Minutes, Seconds = divmod(difference.seconds, 60) Hours, Minutes = divmod(Minutes, 60) Hours += difference.days * 24 # more than 3, show days as well else: Days = difference.days Minutes, Seconds = divmod(difference.seconds, 60) Hours, Minutes = divmod(Minutes, 60) if (Days != "Stu"): mystring = "Time Left: %02d:%02d:%02d:%02d" % (Days, Hours, Minutes, Seconds) else: mystring = "Time Left: %02d:%02d:%02d " % (Hours, Minutes, Seconds) sys.stdout.write(mystring+"\r") sys.stdout.flush() time.sleep(1)