python-bizdatetime is a simple library for performing business day arithmetic.
Rotating weekends/holidays are not supported (e.g., two days working, third day
Business hour arithmetic is not (yet) supported.
Weekly repeating non-business day. Weekend does not have to be at the end
(or beginning) or the week. Weekends do not have to be consecutive days.
Like weekend, holiday is a non-business day. Unlike weekend, holiday does
not have weekly regularity. It is just a date. Holiday can coincide with
Is a (possibly empty) collection of holidays and holidays. All calculations
are performed within a policy.
All business day arithmetic is performed in the context of policy::
from bizdatetime import *
from datetime import date
policy = Policy(weekends=(SAT, SUN), holidays=(date(2011,7,1),))
day = date(2011, 6, 29) # Wednesday
print policy.add(day, 2) # add 2 business dates -> Monday after the long weekend
print policy.biz_day_delta(date(2011, 7, 4), date(2011, 6, 30)) # one holiday, one weekend between
The output of the above program will be::
datetime.date(2011, 7, 4)
Policy method docstrings contain more examples.