python 获取任意时间的工作日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import datetime from dateutil.relativedelta import relativedelta yesterday_time = datetime.datetime.today() - datetime.timedelta(days = 1 ) #判断前一天是否是工作日 isoweekday()函数返回的值,1代表周一,2代表周二,以此类推。 if yesterday_time.isoweekday() not in [ 1 , 2 , 3 , 4 , 5 ]: yesterday_time = yesterday_time.isoweekday() - 6 and yesterday_time - datetime.timedelta( days = 2 ) or yesterday_time - datetime.timedelta(days = 1 ) yesterday_time = yesterday_time else : yesterday_time = yesterday_time print ( '前一个工作日期:' , yesterday_time.strftime( "%Y%m%d" )) date_list = [] return_1w = yesterday_time - datetime.timedelta(days = 7 ) + datetime.timedelta(days = 1 ) date_list.append(return_1w) return_1m = yesterday_time - relativedelta(months = 1 ) + datetime.timedelta(days = 1 ) date_list.append(return_1m) return_3m = yesterday_time - relativedelta(months = 3 ) + datetime.timedelta(days = 1 ) date_list.append(return_3m) return_6m = yesterday_time - relativedelta(months = 6 ) + datetime.timedelta(days = 1 ) date_list.append(return_6m) return_1y = yesterday_time - relativedelta(years = 1 ) + datetime.timedelta(days = 1 ) date_list.append(return_1y) return_3y = yesterday_time - relativedelta(years = 3 ) + datetime.timedelta(days = 1 ) date_list.append(return_3y) return_5y = yesterday_time - relativedelta(years = 5 ) + datetime.timedelta(days = 1 ) date_list.append(return_5y) time_list = []<br> #判断1周前,1月前,3月前,6月前,1年前....,得工作日 for i in date_list: if i.isoweekday() not in [ 1 , 2 , 3 , 4 , 5 ]: j = i.isoweekday() - 6 and i + datetime.timedelta(days = 1 ) or i + datetime.timedelta(days = 2 ) time_list.append(j.strftime( "%Y%m%d" )) else : time_list.append(i.strftime( "%Y%m%d" )) print (time_list) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了