python - Python:迭代一个月内的所有日子
问题描述
有没有一种简单的方法可以遍历给定月份的所有日子?
我想要一种方法,其中我正在迭代的对象将天数作为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]:
推荐阅读
- python-3.x - Urllib3 POST请求在python中带有附件
- python - 使用 Pandas 将值从两个单独的单元格转换为一个
- reactjs - 在 Reactjs 中选择像 MS Word 这样的表
- javascript - 如何使用 web3.js 在 Truffle 测试中进行基本算术运算
- amazon-web-services - 向 EC2 Spot 实例中断警告添加标签
- android - 如何从 Firebase 存储中的文件夹加载图像并在其他地方使用
- c - C中的重复循环
- typescript - 如何避免实时数据库onWrite触发函数回调迭代数据但数据已更改
- python - 如何对 angr 中的堆副作用应用约束
- enums - 如何将枚举类型的参数传递给 Apex 中的方法?