Python中工作日类库Busines Holiday的介绍与使用

作者:bladestone 时间:2023-01-30 23:59:04 

引言

大家在日常工作中,经常会碰到类似的场景,需要计算在某个时间段内的工作日以及确定某天是否为工作日,这里的介绍的工具包将很好的解决这个问题。

Python中工作日类库Busines Holiday的介绍与使用

1. 工具包Business Holiday介绍

其提供了非常简单易用的计算工作日的接口,并允许用户指定特定日期为假期,从而将其从当前的工作日中剔除。

项目主页: https://pypi.Python.org/pypi/business_calendar/

文档首页: http://py-business-calendar.readthedocs.io/en/latest/

2. 功能分析与介绍

Case 1: 计算在某个时间段之内的工作日天数


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天之内的工作日天数:


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: 结合假期,以及星期的概念,计算工作日:


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. 总结

business_holiday的包是非常强大了,基本覆盖了我们关于假期的需求,大家可以自行尝试一下如何使用。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

来源:http://blog.csdn.net/blueheart20/article/details/65444085

标签:python,工作日类库,businesholiday
0
投稿

猜你喜欢

  • Numpy中的repeat函数使用

    2023-03-06 19:16:38
  • Pandas.DataFrame转置的实现 <font color=red>原创</font>

    2022-03-02 03:07:34
  • css中的类和伪类

    2008-06-12 13:12:00
  • 对Keras中predict()方法和predict_classes()方法的区别说明

    2022-11-05 09:13:32
  • 浅谈PyQt5中异步刷新UI和Python多线程总结

    2023-08-22 01:37:18
  • Django Celery异步任务队列的实现

    2023-09-28 19:24:53
  • 深度定制Python的Flask框架开发环境的一些技巧总结

    2022-12-29 21:50:22
  • 在python中画正态分布图像的实例

    2021-04-13 01:42:23
  • Python实现自定义读写分离代码实例

    2023-04-19 14:34:57
  • mysql到oracle的移植

    2011-01-29 16:23:00
  • Python深度学习之使用Pytorch搭建ShuffleNetv2

    2023-10-10 06:19:09
  • 解析SQL server与asp 互操作的时间处理

    2009-02-05 16:13:00
  • flask重启后端口被占用的问题解决(非kill)

    2021-06-24 16:11:24
  • z-blog文章摘要图文混排

    2009-02-28 13:49:00
  • Python使用type动态创建类操作示例

    2021-05-20 11:47:02
  • python 对象和json互相转换方法

    2022-06-27 18:40:14
  • Go语言面试题之select和channel的用法

    2024-04-26 17:27:39
  • python中SSH远程登录设备的实现方法

    2023-10-24 02:30:58
  • Python正则表达式中的'r'用法总结

    2021-08-22 23:16:34
  • Python中的 pass 占位语句

    2023-02-21 20:45:12
  • asp之家 网络编程 m.aspxhome.com