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的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
简单了解python的内存管理机制
Jul 08 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
关于python导入模块import与常见的模块详解
Aug 28 Python
python字典排序的方法
Oct 12 Python
python安装gdal的两种方法
Oct 29 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python接口测试环境搭建过程详解
Jun 29 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
python 实现简易的记事本
Nov 30 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php遍历树的常用方法汇总
2015/06/18 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
jQuery 自定义函数写法分享
2012/03/30 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[01:21:58]守擂赛DOTA2第一周决赛
2020/04/22 DOTA
python利用OpenCV2实现人脸检测
2020/04/16 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python内打印变量之%和f的实例
2020/02/19 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
小学母亲节活动方案
2014/03/14 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
死者家属慰问信
2015/03/24 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
python 用递归实现通用爬虫解析器
2021/04/16 Python
如何理解PHP核心特性命名空间
2021/05/28 PHP