Relative weekday/date utilities useful for finding public holidays
Project description
Relative weekday/date utilities useful for finding public holidays
Installation
pip install blackskirt
After installation is complete, try the following import statements to make sure it’s working.
from blackskirt import (WEEKDAY_MON, WEEKDAY_TUE, WEEKDAY_WED,
WEEKDAY_THU, WEEKDAY_FRI, WEEKDAY_SAT,
WEEKDAY_SUN,)
from blackskirt.ops import (mondayise, next_weekday, prev_weekday,
nearest_weekday, nth_weekday, last_weekday,
next_date, prev_date, nearest_date,)
Examples
mondayise
New Year’s Day: 1 January (or the following Monday if it falls on a Saturday or Sunday)
# 2011-01-01 is Saturday
assert mondayise(year=2011, month=1, day=1,
cases=((WEEKDAY_SAT, WEEKDAY_MON),
(WEEKDAY_SUN, WEEKDAY_MON),)) == "2011-01-03"
Day after New Year’s Day: 2 January (or the following Monday if it falls on a Saturday, or the following Tuesday if it falls on a Sunday)
# 2011-01-02 is Sunday
assert mondayise(year=2011, month=1, day=2,
cases=((WEEKDAY_SAT, WEEKDAY_MON),
(WEEKDAY_SUN, WEEKDAY_TUE),)) == "2011-01-04"
nth_weekday
Labour Day: The fourth Monday in October
assert nth_weekday(year=2014, month=10, n=4, weekday=WEEKDAY_MON) == "2014-10-27"
next_weekday
Marlborough provincial anniversary day: First Monday after Labour Day
assert next_weekday(year=2014, month=10, day=27, weekday=WEEKDAY_MON) == "2014-11-03"
nearest_weekday
Wellington provincial anniversary day: 22 January (Monday nearest to the actual day)
# 2014-01-22 is Wednesday
assert nearest_weekday(year=2014, month=1, day=22, weekday=WEEKDAY_MON) == "2014-01-20"
last_weekday
Memorial Day: Last Monday in May
assert last_weekday(year=2014, month=5, weekday=WEEKDAY_MON) == "2014-05-26"
next_date
Inauguration Day: First January 20 following a Presidential election
# 2012-11-06 was the previous presidential election day in US
assert next_date(month=1, day=20, offset=(2012, 11, 6)) == "2013-01-20"
License
All the code is licensed under the GNU Lesser General Public License (v3+).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.