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中去空格函数的用法
Aug 21 Python
浅析Python中的多条件排序实现
Jun 07 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
python学生管理系统
Jan 30 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
Django权限控制的使用
Jan 07 Python
python中封包建立过程实例
Feb 18 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 Python
Python自动化实战之接口请求的实现
May 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
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
JavaScript日历实现代码
2010/09/12 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
详解Python中的type和object
2018/08/15 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
python基础梳理(一)(推荐)
2019/04/06 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
护理个人求职信范文
2014/01/08 职场文书
大学生校园创业计划书
2014/02/08 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
先进基层党组织材料
2014/12/25 职场文书
个人先进事迹总结
2015/02/26 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
请客吃饭开场白
2015/06/01 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
分享几个简单MySQL优化小妙招
2022/03/31 MySQL