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中的Cookie模块使用
Jul 06 Python
python修改字典内key对应值的方法
Jul 11 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
在Python中增加和插入元素的示例
Nov 01 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
postman传递当前时间戳实例详解
Sep 14 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
推荐值得学习的12款python-web开发框架
Aug 10 Python
python中time包实例详解
Feb 02 Python
python编程的核心知识点总结
Feb 08 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
农民和部队如何穿矿
2020/03/04 星际争霸
PHP网站提速三大“软”招
2006/10/09 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python 将pdf转成图片的方法
2018/04/23 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
Spy++的使用方法及下载教程
2021/01/29 Python
护士长竞聘演讲稿
2014/04/30 职场文书
小组口号大全
2014/06/09 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
英语导游词
2015/02/13 职场文书
三八节活动简报
2015/07/20 职场文书
MySQL之DML语言
2021/04/05 MySQL
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS