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 ElementTree 基本读操作示例
Apr 09 Python
python 不关闭控制台的实现方法
Oct 23 Python
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python异常处理总结
Aug 15 Python
Python 的内置字符串方法小结
Mar 15 Python
50行Python代码实现人脸检测功能
Jan 23 Python
python实时监控cpu小工具
Jun 21 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
python常用排序算法的实现代码
Nov 08 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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设计模式 FlyWeight (享元模式)
2011/06/26 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
JS定义类的六种方式详解
2016/05/12 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
linux比较文件内容的命令是什么
2015/09/23 面试题
求职信名称怎么写
2014/05/26 职场文书
财务会计专业自荐书
2014/06/30 职场文书
交通工程专业推荐信
2014/09/06 职场文书
给老婆的检讨书
2015/01/27 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
农村婚庆主持词
2015/06/29 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
Django 如何实现文件上传下载
2021/04/08 Python