Python中工作日類庫Busines Holiday的介紹與使用
引言
大家在日常工作中,經(jīng)常會碰到類似的場景,需要計算在某個時間段內(nèi)的工作日以及確定某天是否為工作日,這里的介紹的工具包將很好的解決這個問題。

1. 工具包Business Holiday介紹
其提供了非常簡單易用的計算工作日的接口,并允許用戶指定特定日期為假期,從而將其從當(dāng)前的工作日中剔除。
項目主頁: https://pypi.Python.org/pypi/business_calendar/
文檔首頁: http://py-business-calendar.readthedocs.io/en/latest/
2. 功能分析與介紹
Case 1: 計算在某個時間段之內(nèi)的工作日天數(shù)
from business_calendar import Calendar, MO, TU, WE, TH, FR
import datetime
date1 = datetime.datetime(2013,1,10)
# normal calendar, no holidays
cal = Calendar()
date2 = datetime.datetime(2013,3,20)
print('%s days between %s and %s' % (cal.busdaycount(date1, date2), date1, date2))
功能描述: 計算2013/1/10之后的25天之內(nèi)的工作日天數(shù):
49 days between 2013-01-10 00:00:00 and 2013-03-20 00:00:00
Case 2: 計算若干工作日之后的日期
from business_calendar import Calendar, MO, TU, WE, TH, FR
import datetime
date1 = datetime.datetime(2013,1,10)
cal = Calendar()
date2 = cal.addbusdays(date1, 25)
print("The specified date will be %s" % date2)
功能描述: 計算25個工作日之后的日期
The specified date will be 2013-02-14 00:00:00
Case 3: 結(jié)合假期,以及星期的概念,計算工作日:
from business_calendar import Calendar, MO, TU, WE, TH, FR
import datetime
date1 = datetime.datetime(2013,1,10)
# normal calendar, no holidays
cal = Calendar(workdays=[MO,TU,WE,TH], holidays=['2013-01-17'])
date2 = datetime.datetime(2013,3,20)
print('%s days between %s and %s' % (cal.busdaycount(date1, date2), date1, date2))
功能描述: 指定周一到周四工作,1.17日是公眾假期,計算會有多少個工作日:
38 days between 2013-01-10 00:00:00 and 2013-03-20 00:00:00
3. 功能分析
在該類庫中,有workday和businessday的概念:
addbusydays(date, offset)其將考慮holidays公休假的因素addworkdays(date, offset)忽略公休假的因素busdaycount(date1, date2)計算兩個時間點直接的工作日range(date1, date2)返回工作日列表, 考慮假期因素isworkday(date)是否是工作日,忽略公休假的因素isbusday(date)是否工作日,考慮公休假isHoliday(date)是否是假日
4. 總結(jié)
business_holiday的包是非常強大了,基本覆蓋了我們關(guān)于假期的需求,大家可以自行嘗試一下如何使用。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Django全局啟用登陸驗證login_required的方法
這篇文章主要介紹了Django全局啟用登陸驗證login_required的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例詳解
數(shù)據(jù)清洗是指發(fā)現(xiàn)并糾正數(shù)據(jù)文件中可識別的錯誤的最后一道程序,包括檢查數(shù)據(jù)一致性,處理無效值和缺失值等,數(shù)據(jù)清洗與處理的目的是提高數(shù)據(jù)的質(zhì)量,提高實驗結(jié)果的可靠度,本文給大家介紹了python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例,需要的朋友可以參考下2024-08-08
Python 詳解通過Scrapy框架實現(xiàn)爬取CSDN全站熱榜標(biāo)題熱詞流程
Scrapy是用純Python實現(xiàn)一個為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛,框架的力量,用戶只需要定制開發(fā)幾個模塊就可以輕松的實現(xiàn)一個爬蟲,用來抓取網(wǎng)頁內(nèi)容以及各種圖片,非常之方便2021-11-11
PyTorch模型創(chuàng)建與nn.Module構(gòu)建
這篇文章主要為大家介紹了PyTorch模型創(chuàng)建與nn.Module構(gòu)建示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
python?pip特殊用法之pip?install?-v?-e?.命令詳解
這篇文章主要給大家介紹了關(guān)于python?pip特殊用法之pip?install?-v?-e?.命令的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-09-09

