3.14 我们有些场景需要循环迭代当月中的每个日期,如何使用一种高效的方法来计算出日期的范围
- 对日期迭代并不需要创建日期列表,只需要输入开始和结束时间,然后使用timedelta方法间隔一天,然后循环输出
>>> from datetime import datetime,date,timedelta
>>> import calendar
>>>
>>> def get_month_range(start_date=None):
... if start_date is None:
... start_date=date.today().replace(day=1)
... _,dim = calendar.monthrange(start_date.year,start_date.month)
... end_date =start_date +timedelta(days=dim)
... return (start_date,end_date)
...
>>> ad =timedelta(days=1)
>>> fd,ld = get_month_range()
>>> while fd<ld:
... print(fd)
... fd+=ad
...
2022-05-01
2022-05-02
2022-05-03
2022-05-04
2022-05-05
2022-05-06
2022-05-07
2022-05-08
2022-05-09
2022-05-10
2022-05-11
2022-05-12
2022-05-13
2022-05-14
- calendar的monthrange()函数找出带求解的月份中有多少天,monthrange是唯一一个可以返回元组的函数,元祖中包含当月第一个工作日的日期,以及当月的天数