Skip to content

Instantly share code, notes, and snippets.

@Ms2ger
Last active January 10, 2018 08:20
Show Gist options
  • Save Ms2ger/d3d84ffc9d74ebb72f9c8ffd5c1109ea to your computer and use it in GitHub Desktop.
Save Ms2ger/d3d84ffc9d74ebb72f9c8ffd5c1109ea to your computer and use it in GitHub Desktop.
Gardening calendar
import datetime
DAY = datetime.timedelta(days=1)
GARDENERS = [
[
"cgarcia",
"cturner",
"ms2ger",
"magomez",
"zdobersek",
],
[
"mcatanzaro",
"aperez",
"aboya",
"clopez",
"csaavedra",
]
]
def parse_date(date):
return datetime.date(*(int(s) for s in date.split("-")))
def week_index(date):
return date.isocalendar()[1] % len(GARDENERS)
def schedule(start_date, end_date):
start_week = week_index(start_date)
current = start_date
while current <= end_date:
weekday = current.weekday()
if weekday < 5:
gardener = GARDENERS[week_index(current)][weekday]
yield (current, gardener)
current += DAY
def print_gardeners(start_date, end_date):
for (date, gardener) in schedule(start_date, end_date):
print("|| {0:%a} {0:%d} {0:%b} || {1} ||".format(date, gardener))
def main():
import sys
if len(sys.argv) != 3:
print("Missing start or end date")
sys.exit(1)
print_gardeners(*(parse_date(d) for d in sys.argv[1:]))
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment