Skip to main content

ABOUT

https://secure.travis-ci.org/Polyconseil/bizdatim.png?branch=master Latest Version Supported Python versions Wheel status License

bizdatim is a simple library for performing business day arithmetic.

Source is hosted at https://github.com/Polyconseil/bizdatim.

KNOWN LIMITATIONS

Rotating weekends/holidays are not supported (e.g., two days working, third day off).

The business hour arithmetic is limited to additions.

DEFINITIONS

Weekend

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.

Holiday

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 weekend.

Working hours

The starting and ending time of a business day.

Policy

Is a (possibly empty) collection of weekends, holidays and working hours. All calculations are performed within a policy.

SAMPLE USAGE

All business day arithmetic is performed in the context of policy:

>>> from bizdatim import Polycy, SAT, SUN
>>> 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
datetime.date(2011, 7, 4)
>>> print(policy.biz_day_delta(date(2011, 7, 4), date(2011, 6, 30)))  # one holiday, one weekend between
1

There is also the possibility to do arithmetic on business hours:

>>> policy = Policy(weekends=(SAT, SUN), holidays=(date(2011,7,1)), hours=(time(8), time(20)))
>>> day = datetime(2011, 6, 29, 14, 30)
>>> policy.add(day, timedelta(days=1, hours=5))  # The day after, in the afternoon
datetime.datetime(2011, 6, 29, 19, 30)
>>> policy.add(day, timedelta(days=1, hours=10))  # Too many hours, will finish the monday after the long weekend
datetime.datetime(2011, 7, 4, 12, 30)

Policy method docstrings contain more examples.

Release files for bizdatim 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bizdatim 0.2.0
File Size Uploaded
bizdatim-0.2.0.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bizdatim 0.2.0
File Interpreter ABI Platform
bizdatim-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.6 kB

Release files / bizdatim-0.2.0.tar.gz

Download URL bizdatim-0.2.0.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8f34c814aee9a4cb74e00fe9e3b8f9d943f6b877579c4495abd39cc58ebcd6e7
BLAKE2b-256 checksum
How to use checksums
cbfe742dd9ac52ccccef6105449861b7d64da2a9c97414a52a64dc64d38e487a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / bizdatim-0.2.0-py3-none-any.whl

Download URL bizdatim-0.2.0-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e2bbff3f56529e3f70d868df6f3415e6e4e1e1b751367124099a2d9002a3c24
BLAKE2b-256 checksum
How to use checksums
960ca0b3fea7362f5ceddf1f78ac626905e5ebef41dde02cdac112462ac1de9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.2

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page