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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
Python中List.index()方法的使用教程
May 20 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
python实现监控阿里云账户余额功能
Dec 16 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
python实现梯度下降算法的实例详解
Aug 17 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
python3中for循环踩过的坑记录
Dec 14 Python
python中 .npy文件的读写操作实例
Apr 14 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
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
php接口技术实例详解
2016/12/07 PHP
php常用数组函数实例小结
2016/12/29 PHP
PHP实现的策略模式示例
2019/03/20 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
Bootstrap Table使用整理(二)
2017/06/09 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python图算法实例分析
2016/08/13 Python
python中map()函数的使用方法示例
2017/09/29 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
应届毕业生求职信范例分享
2013/12/17 职场文书
期终自我鉴定
2014/02/17 职场文书
yy生日主持词
2014/03/20 职场文书
拉歌口号大全
2014/06/13 职场文书
学位证书委托书
2014/09/30 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript