weekdays in range
Jive Dadson
notontheweb at noisp.com
Sun Oct 18 04:01:18 EDT 2009
Ben Finney wrote:
> Jive Dadson <notontheweb at noisp.com> writes:
>
>> Can someone think of an easy way to calculate the number of weekdays
>> between two calendar dates (in Python)?
>
> That depends on what you mean by “weekdays”.
>
> >>> import datetime
> >>> begin_date = datetime.date(2009, 10, 9)
> >>> end_date = datetime.date(2009, 10, 22)
> >>> import calendar
> >>> print calendar.month(2009, 10)
> October 2009
> Mo Tu We Th Fr Sa Su
> 1 2 3 4
> 5 6 7 8 9 10 11
> 12 13 14 15 16 17 18
> 19 20 21 22 23 24 25
> 26 27 28 29 30 31
> >>> end_date - begin_date
> datetime.timedelta(13)
>
> If you're expecting to exclude Saturday and Sunday (i.e. if you expect
> the above result to be 9 days instead of 13), you can use other
> functions of the ‘calendar’ module; try starting with:
>
> >>> friday_weekday = 4
> >>> len([
> ... date for date in (
> ... begin_date + datetime.timedelta(days)
> ... for days in range((end_date - begin_date).days))
> ... if calendar.weekday(date.year, date.month, date.day) <= friday_weekday])
> 9
>
Thanks for your help. For a non-expert at Python, that last compound
statement is pretty inscrutable. I am trying to scrute it. Wish me luck.
More information about the Python-list
mailing list