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

1. 工具包Business Holiday介紹
其提供了非常簡(jiǎn)單易用的計(jì)算工作日的接口,并允許用戶指定特定日期為假期,從而將其從當(dāng)前的工作日中剔除。
項(xiàng)目主頁: https://pypi.Python.org/pypi/business_calendar/
文檔首頁: http://py-business-calendar.readthedocs.io/en/latest/
2. 功能分析與介紹
Case 1: 計(jì)算在某個(gè)時(shí)間段之內(nèi)的工作日天數(shù)
from business_calendar import Calendar, MO, TU, WE, TH, FRimport datetimedate1 = datetime.datetime(2013,1,10)# normal calendar, no holidayscal = Calendar()date2 = datetime.datetime(2013,3,20)print('%s days between %s and %s' % (cal.busdaycount(date1, date2), date1, date2))功能描述: 計(jì)算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: 計(jì)算若干工作日之后的日期
from business_calendar import Calendar, MO, TU, WE, TH, FRimport datetimedate1 = datetime.datetime(2013,1,10)cal = Calendar()date2 = cal.addbusdays(date1, 25)print("The specified date will be %s" % date2)功能描述: 計(jì)算25個(gè)工作日之后的日期
The specified date will be 2013-02-14 00:00:00
Case 3: 結(jié)合假期,以及星期的概念,計(jì)算工作日:
from business_calendar import Calendar, MO, TU, WE, TH, FRimport datetimedate1 = datetime.datetime(2013,1,10)# normal calendar, no holidayscal = 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日是公眾假期,計(jì)算會(huì)有多少個(gè)工作日:
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) 計(jì)算兩個(gè)時(shí)間點(diǎn)直接的工作日range(date1, date2) 返回工作日列表, 考慮假期因素isworkday(date) 是否是工作日,忽略公休假的因素isbusday(date) 是否工作日,考慮公休假isHoliday(date) 是否是假日4. 總結(jié)
business_holiday的包是非常強(qiáng)大了,基本覆蓋了我們關(guān)于假期的需求,大家可以自行嘗試一下如何使用。
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選