Skip to main content

Business days (workdays) between two date, like `NetworkDays` function used on spreadsheets and more.

Project description

some statistics …

Pypi Version

Doc Status

Coverage

Downloads

pypi version

Documentation Status

code coverage

Downloads on Pypi


  • Business days calendar.

  • JobSchedule on business days.

Networkdays:

Return working days between two dates exclude weekends and holidays.

  • just like spreadsheets networdays function

  • exclude Holidays

  • Exclude “days off” per week.

Job schedule:

Calculate the period for a given job hours, based on Networdays.

Installation

python-networkdays can be installed from PyPI using pip

pip install python-networkdays

Page on Pypi: https://pypi.org/project/python-networkdays/

There is no dependencies.

Features

  • Return a list of business days between 2 dates.

  • Exclude weekends by default

  • Custom “days off” may be informed as list like {1,2,3,4,5,6,7}, where 1 is Monday default is {6,7} = (Sat, Sun).

  • How many business days between two dates.

  • How many days off, including holidays and weekends.

  • Return a list of business days for a given number of hours

  • Return a list of Years, months or weeks for a given number of hours

  • No Pandas or NumPy dependencies

Examples

Class Networkdays.networkdays

List business days, weekends and Holidays

In [1]: from networkdays import networkdays

In [2]: import datetime

In [3]: HOLIDAYS = { datetime.date(2020, 12, 25) }  # define a Holidays list

# initiate  class::`networkdays.Networkdays`
In [4]: days = networkdays.Networkdays(
            datetime.date(2020, 12, 15),  # start date
            datetime.date(2020, 12, 31),  # end date
            HOLIDAYS  # list of Holidays
        )

In [5]: days.networkdays()  # return a list os workdays
Out[5]:
[datetime.date(2020, 12, 15),
 datetime.date(2020, 12, 16),
 datetime.date(2020, 12, 17),
 datetime.date(2020, 12, 18),
 datetime.date(2020, 12, 21),
 datetime.date(2020, 12, 22),
 datetime.date(2020, 12, 23),
 datetime.date(2020, 12, 24),
 datetime.date(2020, 12, 28),
 datetime.date(2020, 12, 29),
 datetime.date(2020, 12, 30),
 datetime.date(2020, 12, 31)]

In [6]: days.weekends()  # list os Weekends (default = Saturday ans Sunday)
Out[6]:
[datetime.date(2020, 12, 19),
 datetime.date(2020, 12, 20),
 datetime.date(2020, 12, 26),
 datetime.date(2020, 12, 27)]

In [7]: days.holidays()
Out[7]: [datetime.date(2020, 12, 25)] # list of holidays

class Networkdays.jobschedule

>>> from networkdays import networkdays
>>> import datetime
>>> # Distribute the 600 hrs of effort, starting on december 1, 2020 working 8hrs per day.
>>> jobschedule = networkdays.JobSchedule(600, 8, datetime.date(2020, 12, 1), networkdays=None)
>>> job_dates = jobschedule.job_workdays()
>>> jobschedule.bussines_days
54
>>> jobschedule.total_days
datetime.timedelta(days=73)
>>> jobschedule.prj_starts
'12/01/20'
>>> jobschedule.prj_ends
'02/12/21'
>>> list(jobschedule.years())
[2020, 2021]
>>> list(jobschedule.months())
[12, 1, 2]
>>> list(jobschedule.weeks()) # ISO
[49, 50, 51, 52, 53, 1, 2, 3, 4, 5, 6]
>>> f'days: {list(jobschedule.days())[:2]} ... {list(jobschedule.days())[-2:]}'
'days: [datetime.date(2020, 12, 1), datetime.date(2020, 12, 2)] ... [datetime.date(2021, 2, 11), datetime.date(2021, 2, 12)]'

Other similar projects

When I start to code, I did check for some similar projects.

I knew about python-dateutil, a great project I use for years… I’d like something more straightforward or simpler.

After to publish the python-networkdays on PyPi I found some others 8(

I will try to keep this list updated…

More on ..

https://networkdays.readthedocs.io/index.html

https://libraries.io/pypi/python-networkdays/sourcerank

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

python-networkdays-1.1.tar.gz (9.7 kB view hashes)

Uploaded Source

Built Distribution

python_networkdays-1.1-py3-none-any.whl (11.9 kB view hashes)

Uploaded Python 3

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