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中使用sort()方法进行排序的简单教程
May 21 Python
Python实现将一个正整数分解质因数的方法分析
Dec 14 Python
Python冲顶大会 快来答题!
Jan 17 Python
Python返回数组/List长度的实例
Jun 23 Python
python实现汉诺塔算法
Mar 01 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
python写日志文件操作类与应用示例
Jul 01 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
python函数不定长参数使用方法解析
Dec 14 Python
详解pandas apply 并行处理的几种方法
Feb 24 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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开发大型项目的一点经验
2006/10/09 PHP
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
杏林同学录(四)
2006/10/09 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
深入理解PHP中的global
2014/08/19 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
python中将字典形式的数据循环插入Excel
2018/01/16 Python
图解Python变量与赋值
2018/04/03 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
Python 可视化神器Plotly详解
2020/12/26 Python
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
小区门卫管理制度
2014/01/29 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
小学教师工作总结2015
2015/04/07 职场文书
2015教师节通讯稿
2015/07/20 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
创业计划书之餐饮
2019/09/02 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
QT与javascript交互数据的实现
2021/05/26 Javascript