Python中当前月份的日历周列表

Python中当前月份的日历周列表,python,datetime,Python,Datetime,我正在努力获取本月的周数。我可以获得当月的周数(当前),但我需要以正确的顺序获得列表。例如,对于7月,它将是w=[27,28,29,30],因为本周是本月4周中的第三周。有人能帮我吗 import datetime kw = datetime.datetime.today().isocalendar()[1] weeks = [7,14,21,28] for idx, i in enumerate(weeks): delta = datetime.timedelta(d

我正在努力获取本月的周数。我可以获得当月的周数(当前),但我需要以正确的顺序获得列表。例如,对于7月,它将是
w=[27,28,29,30]
,因为本周是本月4周中的第三周。有人能帮我吗

import datetime

kw = datetime.datetime.today().isocalendar()[1]
weeks = [7,14,21,28]
    for idx, i in enumerate(weeks):
        delta = datetime.timedelta(days=i)
        if (a - delta).month != a.month:
            current_w = idx

您可以使用
datetime
获取第一周和最后一周,然后获取这两周之间的所有内容

import datetime
import calendar

year = datetime.datetime.now().year
month = datetime.datetime.now().month
first_week = datetime.datetime(year, month, calendar.monthrange(year, month)[0]).isocalendar()[1]
last_week = datetime.datetime(year, month, calendar.monthrange(year, month)[1]).isocalendar()[1]

print(list(range(first_week, last_week + 1)))

from datetime import datetime
将为您保存所有的
datetime.datetime
用法。顺便说一句。

如果您只希望在一个月内包含完整的周数,则第一周将包含该月的第七周。最后一周是下个月1号之前的一周

这足以提供以下功能:

def weeks_in_month(month, year=None):
    """Returns the (ISO) weeks fully contained in a month.
month is an integer between 1 and 12. Year is the current year
if not given"""
    if year is None:
        year = datetime.date.today().year
    first = datetime.date(year, month, 7).isocalendar()[1]
    nextd = datetime.date(year + 1, 1, 1) if month == 12 \
        else datetime.date(year, month + 1, 1)
    nextw = nextd.isocalendar()[1]
    return list(range(first, nextw))

我不明白这个问题。你能解释一下吗=D@anandtripathi我认为他只是想把当月的所有周数都列在一个列表中。周数不应该从每个月的1开始(根据年份,它们应该有持续的数字)@anandtripathi假设我正确理解了这个问题,他想得到当月的日历周数(指全年的周数)。