作为周日历,在生活中不常用到,它一般用于政府,以及相关会计之间的计划或者年度相关的日历之中。那么,具体之间的操作方法,下文就给大家详细的解答。
基本介绍:
在开发过程中,有些像以单位为一个小的计量单位,下面给大家详细解答。
使用datetime类格式化进行转换
strftime方法可以将时间转换为字符串
strptime方法可以将字符串转为时间
"%Y,%W,%w"中,"%Y"代表年份,"%W"代表周,"%w"代表一周内的第几天
from datetime import datetime #时间转周日历 a=datetime.now().strftime("%Y,%W,%w") print(a)#2022,28,3 #周日历转时间 a=datetime.strptime("2022,12,3","%Y,%W,%w") print(a)#2022-03-23 00:00:00
问题
以上貌似问题解决了,但是问题出在年初和年尾
以2021年12月,2022年1月举例
2021年12月
2022年1月
from datetime import datetime a=datetime.strptime("2021-12-31","%Y-%m-%d") print(a.strftime("%Y,%W,%w"))#2021,52,5 a=datetime.strptime("2022-01-01","%Y-%m-%d") print(a.strftime("%Y,%W,%w"))#2022,00,6
正确方法
使用isocalendar将日期转换为周日历
datetime类型的时间直接调用isocalendar方法 from datetime import datetime def str_to_time(time_str:str)->datetime: return datetime.strptime(time_str,"%Y-%m-%d") time_list=[ "2021-12-30", "2021-12-31", "2022-01-01", "2022-01-02", "2022-01-03", ] for i in time_list: t=str_to_time(i) iso=t.isocalendar() print(i,">",f"{iso.year},{iso.week},{iso.weekday}") #2021-12-30>2021,52,4 #2021-12-31>2021,52,5 #2022-01-01>2021,52,6 #2022-01-02>2021,52,7 #2022-01-03>2022,1,1
使用fromisocalendar将周日历转换为日期
from datetime import datetime time_list=( (2021,52,4), (2021,52,5), (2021,52,6), (2021,52,7), (2022,1,1), ) for year,week,weekday in time_list: t=datetime.fromisocalendar(year,week,weekday) print(f"{year},{week},{weekday}",">",t) #2021,52,4>2021-12-30 00:00:00 #2021,52,5>2021-12-31 00:00:00 #2021,52,6>2022-01-01 00:00:00 #2021,52,7>2022-01-02 00:00:00 #2022,1,1>2022-01-03 00:00:00
python代码
from datetime import datetime def datetime_to_isoweek(datetime_:datetime)->tuple[int,int,int]: """时间转换为iso周日历 Args: datetime_(datetime):时间 Returns: tuple[int,int,int]:year,week,weekday """ iso=datetime_.isocalendar() return iso.year,iso.week,iso.weekday def isoweek_to_datetime(isoweek:tuple[int,int,int])->datetime: """iso周日历转换为时间 Args: isoweek(tuple[int,int,int]):year,week,weekday Returns: datetime:时间 """ year,week,weekday=isoweek return datetime.fromisocalendar(year,week,weekday)
以上就是Pythom实现周日历的具体代码实例,希望可以给大家带来帮助。
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/4089.html