Python中工作日类库Busines Holiday的介绍与使用
作者:bladestone 发布时间:2023-01-30 23:59:04
引言
大家在日常工作中,经常会碰到类似的场景,需要计算在某个时间段内的工作日以及确定某天是否为工作日,这里的介绍的工具包将很好的解决这个问题。
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的包是非常强大了,基本覆盖了我们关于假期的需求,大家可以自行尝试一下如何使用。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
来源:http://blog.csdn.net/blueheart20/article/details/65444085
猜你喜欢
- 本文实例讲述了python将MongoDB里的ObjectId转换为时间戳的方法。分享给大家供大家参考。具体分析如下:MongoDB里的_i
- 方法一 :使用常规的思路def transpose(M): # 初始化转置后的矩阵 result = [] &nbs
- 1、注册时验证数据库用户名是否存在。 2、输入密码时提示密码强度和验证2次密码输入是否一样。 3、注册时验证数据库联系邮箱是否存在。 4、注
- 本文主要研究的是使用Python获取本机所有网卡ip,掩码和广播地址,分享了相关的实例代码,具体介绍如下。搜了一天,竟然没找到一段合适的代码
- 在开发 图像 动画 游戏 相关的程序时, 双缓冲( double-buffer )一直是程序员常用(必用)的技巧. 当然 随着各种引擎 框架
- 本文研究的主要是python通过elixir包操作mysql数据库的相关实例,具体如下。python操作数据库有很多方法,下面介绍elixi
- 引言反射是通过实体对象获取反射对象(Value、Type),然后可以操作相应的方法。在某些情况下,我们可能并不知道变量的具体类型,这时候就可
- 触发器是一种特殊的存储过程,触发器主要是通过事件进行触发而被自动调用执行,而存储过程必须通过存储过程的名称被调用。一、触发器的定义触发器是在
- Python获取电脑截图有多种方式,具体如下:PIL中的ImageGrab模块windows APIPyQtpyautoguiPIL中的Im
- 问题你想解析某个XML文档,文档中使用了XML命名空间。解决方案考虑下面这个使用了命名空间的文档:<?xml version=&quo
- 今天在老师工作室做项目的时候,突然看到一个页面用了2种不同的传值类型,突然有了兴趣,想弄明白本质的区别,虽然以前用的知道2种的用法,但是还是
- 这里针对smtplib做了一系列封装,可以完成以下四种场景:发送纯文本的邮件发送html页面的邮件发送带附件文件的邮件发送能展示图片的邮件以
- 01 什么是pocPoC(全称: Proof of Concept), 中文译作概念验证。在安全界,你可以理解成为漏洞验证程序。和一些应用程
- 背景在本地开发vue项目的时候,当你习惯了proxyTable解决本地跨域的问题,切换到nuxt的时候,你会发现,添加了proxyTable
- 天气查询python小程序第0步:导入工具库第一步:生成查询天气的url链接第二步:访问url链接,解析服务器返回的json数据,变成pyt
- sql语句,将数据库一条数据通过分隔符切割成多列 需求场景应对措施效果展示具体代码需求场景在实际场景之中,我们有时候会遇到一种情况,就是数据
- 1,定义和注册中间件在注册的中间件中使用:from django.http import HttpResponseRedirect'
- Python偏函数Python偏函数和我们之前所学习的函数传参中的缺省参数有些类似,但是在实际应用中还是有所区别的,下面通过模拟一个场景一步
- 前言我们在做微信小程序开发的过程中,总会遇到各种奇葩的问题。今天就把我在小程序开发过程中遇到的各种问题,及对应的解决方案总结在这里,方便以后
- 1. ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM 子句中写在最后的表(基础表 driving ta