Skip to content

Instantly share code, notes, and snippets.

@davesque
Created March 23, 2013 06:12
Show Gist options
  • Save davesque/5226662 to your computer and use it in GitHub Desktop.
Save davesque/5226662 to your computer and use it in GitHub Desktop.
A little timer for international airplane flights
import sys
import time
from datetime import datetime, timedelta
START_TIME = datetime(2013, 3, 23, 0, 0, 0, 0)
TRIP_TIME = timedelta(minutes=8.7 * 60)
END_TIME = START_TIME + TRIP_TIME
BAR_WIDTH = 100
while True:
time_left = END_TIME - datetime.now()
hours_left = int(time_left.total_seconds() / 3600)
minutes_left = int((time_left.total_seconds() % 3600) / 60)
percent_left = time_left.total_seconds() / TRIP_TIME.total_seconds()
percent_complete = 1 - percent_left
complete_chars = int(percent_complete * BAR_WIDTH)
left_chars = BAR_WIDTH - complete_chars
sys.stdout.write('[{complete_bar}{left_bar}] ({percent_complete}%, {hours}:{mins} left)\r'.format(
complete_bar='*' * complete_chars,
left_bar=' ' * left_chars,
percent_complete=round(100 * percent_complete, 2),
hours=hours_left,
mins=('0' if minutes_left < 10 else '') + str(minutes_left),
))
sys.stdout.flush()
if time_left <= timedelta(0, 0, 0):
break
time.sleep(0.1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment