from datetime import timedelta from collections import Counter def date_range(start, end): delta = end - start for d in range(delta.days + 1): yield start + timedelta(days=d) return def weekday_in_date_range(start, end, weekday): counter = Counter([d.isoweekday() for d in date_range(start, end)]) return counter.get(weekday, 0)