有人可以告诉我如何在Python中获取实际日历的周数。
Ex: 2016-01-01 to 2016-01-07 = week 1
2016-01-08 to 2016-01-14 = week 2
我试过两种方法,但没有一种方法正常工作
isocalendar()
但这对于年终和年度开始周不起作用。例如:
datetime.date(2016,01,01).isocalendar()[1]
# should be: 1
# got 53
dt = date(2016,01,02)
d = strftime("%U", time.strptime(str(dt),"%Y-%m-%d"))
print d
# 00
dt = date(2016,01,03)
d = strftime("%U", time.strptime(str(dt),"%Y-%m-%d"))
print d
# 01
这两种方式都不符合我的要求。我可以使用其他库来获取实际日历中的周数吗?
答案 0 :(得分:2)
您是在谈论实际的7天期间数而不是您所在的周数吗?请记住,2016年1月3日是第二周的第一天。
如果您正在查看哪个7天的期限,您应该只计算自年初以来的天数和楼层除以7
dt = datetime.datetime(year=2016, month=1, day=2)
days = dt - datetime.datetime(year=dt.year, month=1, day=1).days
weeks = days // 7 + 1
29日应该是第5周的第一天。让我们试一试。
dt = datetime.datetime(year=2016, month=1, day=29)
days = dt - datetime.datetime(year=dt.year, month=1, day=1).days
weeks = days // 7 + 1
# 5