Calculates business duration in days, hours, minutes and seconds by excluding weekends, public holidays and non-business hours
Project description
Business_Duration
Calculates business duration in days, hours, minutes and seconds by excluding weekends, public holidays and non-business hours
How to install the package
pip install business-duration
Example 1
from business_duration import businessDuration
import pandas as pd
import holidays as pyholidays
from datetime import time
#Start date must be in standard python datetime format
start_date = pd.to_datetime('2017-07-01 02:02:00')
#Start date must be in standard python datetime format
end_date = pd.to_datetime('2017-07-07 04:48:00')
#Business open hour must be in standard python time format-Hour,Min,Sec
biz_open_time=time(7,0,0)
#Business close hour must be in standard python time format-Hour,Min,Sec
biz_close_time=time(17,0,0)
#US public holidays
US_holiday_list = pyholidays.US(state='CA')
#Business duration can be 'day', 'hour', 'min', 'sec'
unit_hour='hour'
#Printing output
print(businessDuration(startdate=start_date,enddate=end_date,starttime=biz_open_time,endtime=biz_close_time,holidaylist=US_holiday_list,unit=unit_hour))
#Result
#30.0
#Result is 30 hours because July 1st, 2nd are weekends and 4th is US public holiday. So 3 days remains with 10 business hours per day. 3 days*10 hours = 30 Hours
Example 2
from business_duration import businessDuration
from datetime import datetime
start_date = datetime.strptime("2018-01-01","%Y-%m-%d").date()
end_date = datetime.strptime("2018-03-31","%Y-%m-%d").date()
print(businessDuration(startdate=start_date,enddate=end_date,unit='day'))
#Result
65.0
Example 3
from business_duration import businessDuration
import pandas as pd
import holidays as pyholidays
from datetime import time,datetime
#Reading input file
inputdata = pd.read_excel('Sample.xls')
#Converting to standard Python datetime format
inputdata.sys_created_on=pd.to_datetime(inputdata.sys_created_on,format='%Y-%m-%d %H:%M:%S')
inputdata.resolved_at=pd.to_datetime(inputdata.resolved_at,format='%Y-%m-%d %H:%M:%S')
#Business open hour
biz_open_time = time(8,0,0)
#Business close time
biz_close_time = time(17,0,0)
#Weekend list. 5-Sat, 6-Sun
weekend_list = [5,6]
#Custom US holidays
US_holiday_list = {datetime(2018,1,1).date():"New Year's Day",datetime(2018,5,28).date():"Memorial Day",datetime(2018,7,4).date():"Independence Day",datetime(2018,9,3).date():"Labor Day",datetime(2018,11,22).date():"Thanksgiving",datetime(2018,12,25).date():"Christmas Day"}
#Business duration 'day','hour','min','sec'
unit_hour='hour'
#Applying the function to entire dataframe
from itertools import repeat
inputdata['Biz_Hour'] = list(map(businessDuration,inputdata.sys_created_on,inputdata.resolved_at,repeat(biz_open_time),repeat(biz_close_time),repeat(weekend_list),repeat(US_holiday_list),repeat(unit_hour)))
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.
Source Distribution
File details
Details for the file business_duration-0.67.tar.gz
.
File metadata
- Download URL: business_duration-0.67.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bed03b56d2823ea1944e016a6b0160f1cf7722f052403700af59bcf77bb1fbff |
|
MD5 | c9fc85360209b7c723a5eef66d715495 |
|
BLAKE2b-256 | ca5393be9b28e328e9aeefe07b290950cbd37f069f6edcbd70a098104a8124e0 |