python - 如何使用 Python 确定从星期日开始的一年中的哪一周?
问题描述
我需要从星期日开始一年中的一周。默认的 ISO 周从星期一开始,但我的要求是将星期日作为一周的开始。
例如2019-01-06是星期天,应该是第 2 周。
我试过
t1.strftime("%U")
但问题是它在第一个星期日之前的新一年中的所有日子都返回 0,并从一年中的第一个星期日开始计算周数。
我在这里先向您的帮助表示感谢。
解决方案
有点hacky,但这将完成这项工作:
import datetime
def week(t):
if datetime.datetime(t.year, 1, 1).weekday() == 6:
# The year started with a Sunday.
incr = 0
else:
incr = 1
return int(t.strftime("%U")) + incr
ls = [datetime.datetime(2019, 1, 5), datetime.datetime(2019, 1, 6),
datetime.datetime(2019, 8, 3), datetime.datetime(2019, 8, 4),
datetime.datetime(2017, 1, 1)]
for t in ls:
print("day:", t.strftime("%Y-%m-%d %a,"), "week:", week(t))
输出:
day: 2019-01-05 Sat, week: 1 day: 2019-01-06 Sun, week: 2 day: 2019-08-03 Sat, week: 31 day: 2019-08-04 Sun, week: 32 day: 2017-01-01 Sun, week: 1
推荐阅读
- javascript - 从数组 React 中删除
- python - 为什么验证码图像 src 不会导致图像?
- reactjs - 在 localhost 上运行的前端和后端的 Cookie 传输问题
- java - 如何处理 KeycloakWebSecurityConfigurerAdapter 的异常(例如通过 CommonExceptionsHandler)?
- firebase - 我收到此错误,RangeError (index): Invalid value: Valid value range is empty: 2. 我该如何解决?
- oracle - 如何在一个表上编写触发器以防止更新数据但将这些数据插入到另一个表中
- reactjs - 是否可以在反应导入中传递道具
- javascript - 再次按下按钮时如何从ul中删除所有li
- java - 查找在多个位置产生常量的所有有效迭代范围
- batch-file - 无法通过批处理文件订阅或发布到我的本地 mosquitto