Last active
February 18, 2016 02:07
-
-
Save exogen/5e951c2e3d71cb2be8b4 to your computer and use it in GitHub Desktop.
Big rruleset
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import datetime | |
from dateutil.parser import parse | |
from dateutil.rrule import MO, TU, WE, TH, FR, SA, SU | |
from dateutil.rrule import rrule, rruleset, WEEKLY | |
rs = rruleset() | |
WEEKDAY_TIMES = [ | |
{ "byhour": 5, "byminute": 0 }, | |
{ "byhour": 5, "byminute": 15 }, | |
{ "byhour": 5, "byminute": 30 }, | |
{ "byhour": 5, "byminute": 45 }, | |
{ "byhour": 6, "byminute": 0 }, | |
{ "byhour": 6, "byminute": 15 }, | |
{ "byhour": 6, "byminute": 30 }, | |
{ "byhour": 6, "byminute": 45 }, | |
{ "byhour": 7, "byminute": 0 }, | |
{ "byhour": 7, "byminute": 15 }, | |
{ "byhour": 7, "byminute": 30 }, | |
{ "byhour": 7, "byminute": 45 }, | |
{ "byhour": 8, "byminute": 0 }, | |
{ "byhour": 8, "byminute": 15 }, | |
{ "byhour": 8, "byminute": 30 }, | |
{ "byhour": 8, "byminute": 45 }, | |
{ "byhour": 9, "byminute": 0 }, | |
{ "byhour": 9, "byminute": 15 }, | |
{ "byhour": 9, "byminute": 30 }, | |
{ "byhour": 9, "byminute": 45 }, | |
{ "byhour": 13, "byminute": 0 }, | |
{ "byhour": 13, "byminute": 15 }, | |
{ "byhour": 13, "byminute": 30 }, | |
{ "byhour": 13, "byminute": 45 }, | |
{ "byhour": 14, "byminute": 0 }, | |
{ "byhour": 14, "byminute": 15 }, | |
{ "byhour": 14, "byminute": 30 }, | |
{ "byhour": 14, "byminute": 45 }, | |
{ "byhour": 15, "byminute": 0 }, | |
{ "byhour": 15, "byminute": 15 }, | |
{ "byhour": 15, "byminute": 30 }, | |
{ "byhour": 15, "byminute": 45 }, | |
{ "byhour": 16, "byminute": 0 }, | |
{ "byhour": 16, "byminute": 15 }, | |
{ "byhour": 16, "byminute": 30 }, | |
{ "byhour": 16, "byminute": 45 } | |
] | |
SUNDAY_TIMES = [ | |
{ "byhour": 11, "byminute": 0 }, | |
{ "byhour": 11, "byminute": 15 }, | |
{ "byhour": 11, "byminute": 30 }, | |
{ "byhour": 11, "byminute": 45 }, | |
{ "byhour": 12, "byminute": 0 }, | |
{ "byhour": 12, "byminute": 15 }, | |
{ "byhour": 12, "byminute": 30 }, | |
{ "byhour": 12, "byminute": 45 }, | |
{ "byhour": 14, "byminute": 0 }, | |
{ "byhour": 14, "byminute": 15 }, | |
{ "byhour": 14, "byminute": 30 }, | |
{ "byhour": 14, "byminute": 45 }, | |
{ "byhour": 15, "byminute": 0 }, | |
{ "byhour": 15, "byminute": 15 }, | |
{ "byhour": 15, "byminute": 30 }, | |
{ "byhour": 15, "byminute": 45 } | |
] | |
START_DATE = parse("20110201") | |
WEEKDAYS = (MO, TU, WE, TH, FR, SA) | |
SUNDAYS = (SU,) | |
for spec in WEEKDAY_TIMES: | |
rs.rrule(rrule(WEEKLY, byweekday=WEEKDAYS, dtstart=START_DATE, **spec)) | |
for spec in SUNDAY_TIMES: | |
rs.rrule(rrule(WEEKLY, byweekday=SUNDAYS, dtstart=START_DATE, **spec)) | |
print("When is the next bus?") | |
print(rs.after(datetime.now())) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment