輸入一段日期內的休息日和法定節假日
阿新 • • 發佈:2018-12-26
查詢單日的有個現成的介面http://api.goseek.cn/ 返回資料:工作日對應結果為 0, 休息日對應結果為 1, 節假日對應的結果為 2
要做的就是生成一年的日期,然後逐個去判斷校驗了.
具體的程式碼如下,實現的是輸入一個時間段,能返回時間段內的休息日和節假日.裡面有冗餘的,沒做修改,先這樣吧
#coding:utf-8 import json import urllib2 import requests import time all_days=[] def gener_data(): """生成當年的所有日期""" year=time.strftime('%Y',time.localtime()) #得到年份 months=[i for i in range(1,13)] for month in months: if month in [1,3,5,7,8,10,12]: for j in range(1,32): if j<10: j='0{0}'.format(j) if month<10: month='0%s'%month day='{0}{1}{2}'.format(year,month,j) all_days.append(day) elif month in [4,6,9,11]: for j in range(1,31): if j < 10: j='0{0}'.format(j) if month < 10: month='0{0}'.format(month) day = '{0}{1}{2}'.format(year, month, j) all_days.append(day) elif month==2: for j in range(1,29): if j < 10: j = '0{0}'.format(j) if month < 10: month = '0{0}'.format(month) day='{0}{1}{2}'.format(year, month, j) all_days.append(day) if int(year)%4==0: all_days.append('{0}0229'.format(year)) return all_days print gener_data()[gener_data().index('20181221'):gener_data().index('20181231')] def get_holidays(start_date,end_date): dates =gener_data()[gener_data().index(start_date):gener_data().index(end_date)+1] holidays={} for dt in dates: url="http://api.goseek.cn/Tools/holiday?date={0}".format(dt) response_data=requests.get(url).json()['data'] if response_data==1: holidays[dt]=1 elif response_data==2: holidays[dt]=2 value=sorted(holidays.items(),key=lambda holidays:holidays[0]) return value print get_holidays("20180601","20180630")