问题描述
我有一个自定义日历,每周从周四 19:00:00 开始,到周四 18:59:59 结束。 我正在尝试使用此自定义日历从给定的年和周数返回日期时间范围,并从给定的日期时间值返回年和周数。
对于 ISO 日历来说非常简单
from datetime import datetime,timedelta
def get_ISO_wk(date_time):
yr_num = date_time.isocalendar()[0]
wk_num = date_time.isocalendar()[1]
if wk_num < 10:
wk_num = "0{}".format(wk_num)
return "WW{}-{}".format(yr_num,wk_num)
def get_ISO_range(year,week):
d = datetime(year,1,0)
dlt = timedelta(days=((week - 1) * 7) - 2)
wk_start = d + dlt
d = datetime(year,23,59,59)
dlt = timedelta(days=((week - 1) * 7) - 2)
wk_end = d + dlt + timedelta(days=6)
return str(wk_start),str(wk_end)
my_dt = datetime(2020,12,31,10,43,22)
my_yr = 2020
my_wk = 53
print("ISO Week is {}".format(get_ISO_wk(my_dt)))
print("Week range is {}".format(get_ISO_range(my_yr,my_wk)))
>>> ISO Week is WW2020-53
>>> Week range is ('2020-12-28 00:00:00','2021-01-03 23:59:59')
我做了一些研究,发现这个 customize calendar 对于指定一周的开始日期非常有用。但我就是不知道如何添加自定义开始/结束时间并使用自定义日历从给定的年份和周数推导出日期范围。
人们是如何做到这一点的?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)