Python中当前月份的日历周列表
我正在努力获取本月的周数。我可以获得当月的周数(当前),但我需要以正确的顺序获得列表。例如,对于7月,它将是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
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假设我正确理解了这个问题,他想得到当月的日历周数(指全年的周数)。