|
@@ -15,6 +15,22 @@ def datetime_now_local():
|
|
|
return datetime.datetime.now(dateutil.tz.tzlocal())
|
|
|
|
|
|
|
|
|
+def format_timedelta(timedelta):
|
|
|
+ total_seconds = timedelta.total_seconds()
|
|
|
+ return '%s%d:%02d' % (
|
|
|
+ '-' if total_seconds < 0 else '',
|
|
|
+ int(abs(total_seconds) / 60),
|
|
|
+ abs(total_seconds) % 60,
|
|
|
+ )
|
|
|
+
|
|
|
+assert "0:20" == format_timedelta(datetime.timedelta(seconds=20))
|
|
|
+assert "1:20" == format_timedelta(datetime.timedelta(seconds=80))
|
|
|
+assert "2:00" == format_timedelta(datetime.timedelta(seconds=120))
|
|
|
+assert "-0:20" == format_timedelta(datetime.timedelta(seconds=-20))
|
|
|
+assert "-1:20" == format_timedelta(datetime.timedelta(seconds=-80))
|
|
|
+assert "-2:00" == format_timedelta(datetime.timedelta(seconds=-120))
|
|
|
+
|
|
|
+
|
|
|
class Departure:
|
|
|
|
|
|
def __init__(self, line, towards, predicted_time):
|
|
@@ -87,8 +103,8 @@ def run(config_path):
|
|
|
if departures:
|
|
|
for departure_idx, departure in enumerate(departures):
|
|
|
oledExp.setCursor(1 + departure_idx, 0)
|
|
|
- oledExp.write("%03d %s %s" % (
|
|
|
- departure.predicted_timedelta.total_seconds(),
|
|
|
+ oledExp.write("%s %s %s" % (
|
|
|
+ format_timedelta(departure.predicted_timedelta),
|
|
|
departure.line,
|
|
|
departure.towards,
|
|
|
))
|