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.