The code below can be a start. The function date_countdown
takes in a date string and a date format corresponding to the date string, and outputs a countdown to the terminal.
countdown.py
import datetime
def date_countdown(future_datetime, date_format):
print("Countdown for {}:".format(future_datetime))
seconds_left = -1
while seconds_left:
cur = datetime.datetime.now()
fut = datetime.datetime.strptime(future_datetime, date_format)
left = fut - cur
print(
"{0: >3d} days, {1:0>2d}:{2:0>2d}:{3:0>2d}".format(
left.days, # days
left.seconds // 3600, # hours
(left.seconds // 60) % 60, # minutes
(left.seconds % 60) # seconds
),
end='\r')
time.sleep(1)
seconds_left = left.total_seconds()
print('Done!')
date_countdown('2018-12-25', '%Y-%m-%d')
Output:
Countdown for 2018-12-25:
27 days, 04:15:40