时间:2021-05-22
本文实例为大家分享了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)])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android编程实现计算两个日期之间天数并打印所有日期的方法。分享给大家供大家参考,具体如下:以下代码是计算两个日期之间的天数,并打印所有日期注
本文实例讲述了python计算时间差的方法。分享给大家供大家参考。具体分析如下:1、问题:给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年
本文实例讲述了python计算N天之后日期的方法。分享给大家供大家参考。具体如下:python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行#
本文实例讲述了python日期相关操作。分享给大家供大家参考,具体如下:用Python做项目时,经常会遇到与日期转换相关,日期计算相关的功能,动不动就要去查py
我们在编写ASP.net程序时,经常需要计算两个日期之间的间隔,如计算两个日期之间相差的年数、月数、天数、小时数、分钟,秒等,下面的源代码就给出了具体的实现方法