python 查询每周最后一个工作日
背景:
做定时任务时,一般都是写死每周五XXXXX,但有时遇到节假日的情况,周五可能不是本周最后一个工作日
之前用的 http://api.goseek.cn/Tools/holiday?date=20200103 接口后来发现不能用了,于是换了个接口,http://timor.tech/api/holiday/info/2020-01-03
—–修改by20200103
原代码如下:
1 import urllib2,datetime,json 2 3 nowTime = datetime.datetime.now().strftime("%Y%m%d") #当前日期 4 nowTimeLast = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y%m%d") #当前日期后一天 5 6 server_url = "http://api.goseek.cn/Tools/holiday?date=" 7 8 vop_nowTime = json.loads(urllib2.urlopen(urllib2.Request(server_url + nowTime)).read()) 9 vop_nowTimeLast = json.loads(urllib2.urlopen(urllib2.Request(server_url + nowTimeLast)).read()) 10 11 codeNow = vop_nowTime[\'data\'] 12 codeNowLast = vop_nowTimeLast[\'data\'] 13 print(codeNow,codeNowLast) 14 15 #正常工作日对应结果为 0, 法定节假日对应结果为 1, 节假日调休补班对应的结果为 2,休息日对应结果为 3 16 if (codeNow == 0 or codeNow == 2) and (codeNowLast == 1 or codeNowLast == 3): 17 print\'明天休息啦\' 18 #你的函数
更新后的代码如下:
1 import urllib2,datetime,json 2 3 nowTime = datetime.datetime.now().strftime("%Y-%m-%d") # 当前日期 4 nowTimeLast = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y-%m-%d") # 当前日期后一天 5 6 server_url = "http://timor.tech/api/holiday/info/" 7 8 vop_nowTime = json.loads(urllib2.urlopen(urllib2.Request(server_url + nowTime)).read()) 9 vop_nowTimeLast = json.loads(urllib2.urlopen(urllib2.Request(server_url + nowTimeLast)).read()) 10 11 codeNow = vop_nowTime[\'type\'][\'type\'] 12 codeNowLast = vop_nowTimeLast[\'type\'][\'type\'] 13 codeNowLast_ho = vop_nowTimeLast[\'holiday\'] 14 print(codeNow,codeNowLast,codeNowLast_ho) 15 16 #工作日、周末、节日 0 1 2 17 if ((codeNow == 0) or (codeNow == 1 and codeNowLast_ho != None)) and ((codeNowLast == 2) or (codeNowLast == 1 and codeNowLast_ho==None)): 18 print\'明天休息啦\' 19 #你的函数