python計算日期之間的放假日期
更新時間:2018年06月05日 11:37:07 作者:houyj1986
這篇文章主要為大家詳細(xì)介紹了python計算日期之間的放假日期,實現(xiàn)自動查詢節(jié)日,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python計算日期之間的放假日期,供大家參考,具體內(nèi)容如下
代碼如下:
#encoding=utf-8
print '中國'
#自動查詢節(jié)日 給定起始日期和結(jié)束日期,自動獲取總共的節(jié)假日天數(shù)
import datetime
from dateutil import rrule,easter
try: set
except NameError: from sets import Set as set
#復(fù)活節(jié)
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]
#開始到結(jié)束的節(jié)禮日列表
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]
#返回開始和結(jié)束日期之間的圣誕節(jié)列表
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]
#返回勞動節(jié)列表
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]
#讀取設(shè)定的節(jié)假日
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')
打印結(jié)果如下:
中國
(4, [datetime.date(2014, 4, 20), datetime.date(2014, 12, 25), datetime.date(2014, 3, 23), datetime.date(2014, 9, 1)])
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python中關(guān)于時間和日期函數(shù)的常用計算總結(jié)(time和datatime)
- Python計算兩個日期相差天數(shù)的方法示例
- python計算N天之后日期的方法
- python 計算兩個日期相差多少個月實例代碼
- Python日期時間模塊datetime詳解與Python 日期時間的比較,計算實例代碼
- Python根據(jù)指定日期計算后n天,前n天是哪一天的方法
- Python 3.3實現(xiàn)計算兩個日期間隔秒數(shù)/天數(shù)的方法示例
- Python簡單計算給定某一年的某一天是星期幾示例
- Python編程判斷這天是這一年第幾天的方法示例
- Python編程實現(xiàn)輸入某年某月某日計算出這一天是該年第幾天的方法
- Python自定義函數(shù)計算給定日期是該年第幾天的方法示例
相關(guān)文章
pytorch中Transformer進(jìn)行中英文翻譯訓(xùn)練的實現(xiàn)
本文主要介紹了pytorch中Transformer進(jìn)行中英文翻譯訓(xùn)練的實現(xiàn),詳細(xì)闡述了使用PyTorch實現(xiàn)Transformer模型的代碼實現(xiàn)和訓(xùn)練過程,具有一定參考價值,感興趣的可以了解一下2023-08-08
python生成requirements.txt文件的兩種方法
requirements.txt 文件是項目的依賴包及其對應(yīng)版本號的信息列表,本文主要介紹了python生成requirements.txt文件的兩種方法,具有一定的參考價值,感興趣的可以了解一下2023-12-12

