python计算日期之间的放假日期


Posted in Python onJune 05, 2018

本文实例为大家分享了python计算日期之间的放假日期,供大家参考,具体内容如下

代码如下:

#encoding=utf-8 
 
print '中国' 
 
#自动查询节日 给定起始日期和结束日期,自动获取总共的节假日天数 
 
import datetime 
from dateutil import rrule,easter 
 
 
try: set 
except NameError: from sets import Set as set 
 
#复活节 
def all_easter(start, end): 
  easters = [easter.easter(y) for y in xrange(start.year,end.year+1)] 
  return [d for d in easters if start<=d<=end] 
 
#开始到结束的节礼日列表 
def all_boxing(start, end): 
  one_day = datetime.timedelta(days=1) 
  boxings = [easter.easter(y) + one_day for y in xrange(start.year,end.year+1)] 
  return [d for d in boxings if start<=d<=end]  
 
#返回开始和结束日期之间的圣诞节列表 
def all_christmas(start, end): 
  christmases = [datetime.date(y,12,25) for y in xrange(start.year, end.year + 1)] 
  return [d for d in christmases if start<=d<=end] 
 
#返回劳动节列表 
def all_labor(start, end): 
  labors = rrule.rrule(rrule.YEARLY, bymonth=9, byweekday=rrule.MO(1),dtstart=start, until=end) 
  return [d.date() for d in labors] 
 
#读取设定的节假日 
def read_holidays(start, end, holidays_file='holidays.txt'): 
  try: 
    holidays_file = open(holidays_file) 
  except IOError,err: 
    print 'open failed' 
    return [] 
  holidays = [] 
   
  for line in holidays_file: 
    if line.isspace() or line.startswith('#'): 
      continue 
    try: 
      y,m,d = [int(x.strip()) for x in line.split(',')] 
      date = datetime.date(y,m,d) 
    except ValueError: 
      print 'Invalid line find' 
      continue 
    if start <= date <=end: 
      holidays.append(date)       
  holidays_file.close() 
  return holidays 
   
     
holidays_by_country = { 
'US':(all_easter,all_christmas,all_labor), 
'IT':(all_easter,all_boxing,all_labor) 
} 
 
def holidays(cc,start,end,holidays_file='holidays.txt'): 
  all_holidays= read_holidays(start,end,holidays_file) 
  functions = holidays_by_country.get(cc,()) 
  for function in functions: 
    all_holidays += function(start,end) 
  all_holidays = list(set(all_holidays)) 
  return (len(all_holidays),all_holidays) 
 
test_file = open(r'D:\123.txt','w') 
test_file.write('2014,3,23') 
test_file.close() 
 
print holidays('US',datetime.date(2014,1,1),datetime.date(2014,12,31),r'D:\123.txt')

打印结果如下:

中国
(4, [datetime.date(2014, 4, 20), datetime.date(2014, 12, 25), datetime.date(2014, 3, 23), datetime.date(2014, 9, 1)])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
Python实现保证只能运行一个脚本实例
Jun 24 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
python解决Fedora解压zip时中文乱码的方法
Sep 18 Python
python 计算文件的md5值实例
Jan 13 Python
Python3 queue队列模块详细介绍
Jan 05 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
python中翻译功能translate模块实现方法
Dec 17 Python
Python编程源码报错解决方法总结经验分享
Oct 05 Python
使用Python拟合函数曲线
Apr 14 Python
python检索特定内容的文本文件实例
Jun 05 #Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 #Python
python 读取txt,json和hdf5文件的实例
Jun 05 #Python
利用Python如何将数据写到CSV文件中
Jun 05 #Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 #Python
对pandas中to_dict的用法详解
Jun 05 #Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 #Python
You might like
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python中协程用法代码详解
2018/02/10 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Python数据库小程序源代码
2019/09/15 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
架构师岗位职责
2013/11/18 职场文书
工作疏忽检讨书
2014/01/25 职场文书
全运会口号
2014/06/20 职场文书
周一给客户的问候语
2015/11/10 职场文书
《春酒》教学反思
2016/02/22 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers