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实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
详解Python3中的Sequence type的使用
Aug 01 Python
python3中bytes和string之间的互相转换
Feb 09 Python
详解python3中tkinter知识点
Jun 21 Python
Django框架的使用教程路由请求响应的方法
Jul 03 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
pytorch实现focal loss的两种方式小结
Jan 02 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
Mar 08 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
解决python打开https出现certificate verify failed的问题
Sep 03 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 Python
python turtle绘图
May 04 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
第八节 访问方式 [8]
2006/10/09 PHP
php桌面中心(三) 修改数据库
2007/03/11 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
深入php self与$this的详解
2013/06/08 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
详解php中的implements 使用
2017/06/13 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
医学生毕业自我鉴定
2014/03/26 职场文书
标准版离职证明书
2014/09/12 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
求职信格式范文
2015/03/19 职场文书
晚会开场白和结束语
2015/05/29 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
Python 中的Sympy详细使用
2021/08/07 Python