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


Posted in Python onJuly 06, 2017

引言

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

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的包是非常强大了,基本覆盖了我们关于假期的需求,大家可以自行尝试一下如何使用。

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

Python 相关文章推荐
Python实现抓取网页并且解析的实例
Sep 20 Python
python中执行shell的两种方法总结
Jan 10 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python中将函数赋值给变量时需要注意的一些问题
Aug 18 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
通过代码实例了解Python异常本质
Sep 16 Python
python办公自动化之excel的操作
May 23 Python
使用scrapy实现增量式爬取方式
Jun 21 Python
Python中动态检测编码chardet的使用教程
Jul 06 #Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 #Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 #Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 #Python
Python如何快速实现分布式任务
Jul 06 #Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 #Python
Python标准库sched模块使用指南
Jul 06 #Python
You might like
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php下删除字符串中HTML标签的函数
2008/08/27 PHP
php遍历目录viewDir函数
2009/12/15 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python 从相对路径下import的方法
2018/12/04 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
高一数学教学反思
2014/02/07 职场文书
安全责任协议书
2014/04/21 职场文书
学校评语大全
2014/05/06 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
浅谈Python响应式类库RxPy
2021/06/14 Python
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android