Skip to main content

Relative weekday/date utilities useful for finding public holidays

Project description

Relative weekday/date utilities useful for finding public holidays

Installation

pip install blackskirt

Examples

from blackskirt import (WEEKDAY_MON, WEEKDAY_TUE, WEEKDAY_WED,
                        WEEKDAY_THU, WEEKDAY_FRI, WEEKDAY_SAT,
                        WEEKDAY_SUN,)
from blackskirt.blackskirt import (mondayise, next_weekday,
                                   prev_weekday, nearest_weekday,
                                   nth_weekday, last_weekday,
                                   next_date, prev_date, nearest_date,)

mondayise

  1. 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("2011-01-01", cases=((WEEKDAY_SAT, WEEKDAY_MON),
                                      (WEEKDAY_SUN, WEEKDAY_MON),)) == "2011-01-03"
  1. 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("2011-01-02", cases=((WEEKDAY_SAT, WEEKDAY_MON),
                                      (WEEKDAY_SUN, WEEKDAY_TUE),)) == "2011-01-03"

nth_weekday

Labour Day: The fourth Monday in October

assert nth_weekday(2014, 10, n=4, weekday=WEEKDAY_MON) == "2014-10-27"

next_weekday

Marlborough provincial anniversary day: First Monday after Labour Day

assert next_weekday("2014-10-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
nearest_weekday("2014-01-22", weekday=WEEKDAY_MON) == "2014-01-20"

last_weekday

Memorial Day: Last Monday in May

assert last_weekday(2014, 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(1, 20, offset="2012-11-06") == "2013-01-20"

License

All the code is licensed under the GNU Lesser General Public License (v3+).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Blackskirt-0.1.tar.gz (4.0 kB view details)

Uploaded Source

File details

Details for the file Blackskirt-0.1.tar.gz.

File metadata

  • Download URL: Blackskirt-0.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Blackskirt-0.1.tar.gz
Algorithm Hash digest
SHA256 b1c68e51957732371f271a4c58b34231f9159a5aed5af695dc416b8dcde1fa72
MD5 7ddce53517da39de8c3f54728374a478
BLAKE2b-256 3875358baa192746222846a44550449e2e7cc9bb33319923f19ee6083996c9af

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page