是否有一种简单的方法可以遍历给定月份的所有日期?
我想要一个方法,其中我正在迭代的对象将日期作为 datetime.date 对象。我已经找到了 calendar 模块及其 Calendar 类和相应的方法 itermonthdates(year, month)。
我的问题是生成的迭代器包含“填充”天数来表示完整的周数。例如,2019 年 7 月在星期三 (31) 结束。所以这个星期是不完整的,itermonthdates() 添加了 8 月 1-4 日的日期。
我不想要这种行为。
我的第一个猜测是这样的:
from calendar import Calendar, monthrange
c = Calendar()
for date in list(c.itermonthdates(2019, 7))[:monthrange(2019, 7)[1]]:
print(date)
它的行为符合预期,但我不确定是否有更好、更优雅的方法。
请您参考如下方法:
只需按月过滤 date 对象。
for d in [x for x in c.itermonthdates(2019, 7) if x.month == 7]:
