首页 > 解决方案 > 如何使用 Python 确定从星期日开始的一年中的哪一周?

问题描述

我需要从星期日开始一年中的一周。默认的 ISO 周从星期一开始,但我的要求是将星期日作为一周的开始。

例如2019-01-06星期天,应该是第 2 周。

我试过

t1.strftime("%U")

但问题是它在第一个星期日之前的新一年中的所有日子都返回 0,并从一年中的第一个星期日开始计算周数。

我在这里先向您的帮助表示感谢。

标签: pythonpython-2.7datetimedatetime-formatpython-datetime

解决方案


有点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

推荐阅读