Skip to main content

Calculate business days/hours between two datetimes

Project description

businesslen

Overview

This Python package calculates the business hours/days* between two datetimes. It is possible to customize the work week schedule and list of holidays.

The default work week schedule is 9 AM to 5 PM, Monday to Friday, with a lunch break from 12 PM to 1 PM. The default holiday schedule is US from the package holidays.

* Business days are eight-hour workday.

Installation

pip install businesslen

Usage

from datetime import datetime

from businesslen import BusinessLen


start_dt = datetime(2020, 2, 10, 8, 5, 12)
end_dt = datetime(2020, 2, 12, 16, 37, 28)

bl = BusinessLen()
bl.hours(start_dt, end_dt) # 20.62
bl.days()  # 2.58

Documentation

def __init__(workweek_schedule, lunch_hour, offdays):
    """"Keyword arguments:
    workweek_schedule --
        a dict that defines weekly work hours; has following format
        {
            0: (9, 17),
            ...
            6: ()
        }
        The key is an int following datetime weekday() function where
        Monday is 0 and Sunday is 6. The value is a tuple with two ints:
        the start hour and the end hour in 24 hour format (0 to 23).
    lunch_hour -- int
    offdays -- either an ISO country code or tuple of datetime dates to be
               considered as holidays
    """

def hours(self, start_dt, end_dt):
    """Return business hours.

    Keyword arguments:
    start_dt -- datetime object of start time
    end_dt -- datetime object of end time
    """

def days(self):
    """Return business days."""

Off-hours are not not added. For example, if end_dt is 30 minutes past work hours, those 30 minutes will be ignored.

Input verification is done upon object initialization and each calculation. ValueError is raised with corresponding error message if something is wrong.

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

businesslen-2.5.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

businesslen-2.5.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file businesslen-2.5.0.tar.gz.

File metadata

  • Download URL: businesslen-2.5.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for businesslen-2.5.0.tar.gz
Algorithm Hash digest
SHA256 520a1e0aaa6121715d7747f96898b5f82150c0120ad14438632a6716b5cd6943
MD5 ab62a2a7022f6662486ded17695fd27c
BLAKE2b-256 aecff6ae0901d5bc7a1be360b9760820e445dfbddeb4dd1a83dbd258e73bb771

See more details on using hashes here.

File details

Details for the file businesslen-2.5.0-py3-none-any.whl.

File metadata

  • Download URL: businesslen-2.5.0-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for businesslen-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0bd580f6af28a24d24be00d7fd76c18797fb16d84c160d6de22aa9a06532bd69
MD5 69b963d97f0eb797e02a2071897464d9
BLAKE2b-256 a628f10ec9ec3f88e8d52e8372161045b9737b65d5c64d5f4f8f93a617b6dd50

See more details on using hashes here.

Supported by

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