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的包是非常強(qiáng)大了,基本覆蓋了我們關(guān)于假期的需求,大家可以自行嘗試一下如何使用。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Python使用matplotlib實現(xiàn)交換式圖形顯示功能示例
這篇文章主要介紹了Python使用matplotlib實現(xiàn)交換式圖形顯示功能,結(jié)合實例形式詳細(xì)分析了Python基于matplotlib模塊的數(shù)值運(yùn)算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09如何利用Python動態(tài)模擬太陽系運(yùn)轉(zhuǎn)
這篇文章主要給大家介紹了關(guān)于如何利用Python動態(tài)模擬太陽系運(yùn)轉(zhuǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python利用 SVM 算法實現(xiàn)識別手寫數(shù)字
支持向量機(jī) (Support Vector Machine, SVM) 是一種監(jiān)督學(xué)習(xí)技術(shù),它通過根據(jù)指定的類對訓(xùn)練數(shù)據(jù)進(jìn)行最佳分離,從而在高維空間中構(gòu)建一個或一組超平面。本文將介紹通過SVM算法實現(xiàn)手寫數(shù)字的識別,需要的可以了解一下2021-12-12PyTorch上實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)CNN的方法
本篇文章主要介紹了PyTorch上實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)CNN的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04在arcgis使用python腳本進(jìn)行字段計算時是如何解決中文問題的
這篇文章主要介紹了在arcgis使用python腳本進(jìn)行字段計算時是如何解決中文問題的,需要的朋友可以參考下2015-10-10python 進(jìn)程間數(shù)據(jù)共享multiProcess.Manger實現(xiàn)解析
這篇文章主要介紹了python 進(jìn)程間數(shù)據(jù)共享multiProcess.Manger實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09Pytorch中TensorBoard及torchsummary的使用詳解
這篇文章主要介紹了Pytorch中TensorBoard及torchsummary的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05