Using Python to count the number of business days in a month?

date, python

Solution

This is a long-winded way, but at least it works and doesn't require anything other than the standard modules.

import datetime

now = datetime.datetime.now()
holidays = {datetime.date(now.year, 8, 14)} # you can add more here
businessdays = 0
for i in range(1, 32):
    try:
        thisdate = datetime.date(now.year, now.month, i)
    except(ValueError):
        break
    if thisdate.weekday() < 5 and thisdate not in holidays: # Monday == 0, Sunday == 6 
        businessdays += 1

print businessdays

Problem

I am trying to write a Python script that will calculate how many business days are in the current month. For instance if `month = August` then `businessDays = 22`. Here is my code for discovering the month: ``` def numToMonth( num ): months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] return str(months[ num - 1 ]) ``` This code works fine, and I could hard code another function to match the month with how many days that month should contain...but this does not help me with business days. Any help? I'm used to C, C++ so please don't bash my Python "skills". Edit: I cannot install any extra libraries or modules on my machine, so please post answers using default Python modules. (Python 2.7, `datetime` etc.) Also, my PC has Windows 7 OS.

Original source

Related problems