34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
|
from datetime import datetime, date, timedelta
|
|||
|
import calendar
|
|||
|
|
|||
|
from fontTools.misc.plistlib import end_date
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
|
|||
|
def get_month_range(start_date=None):
|
|||
|
if start_date is None:
|
|||
|
start_date = date.today().replace(day=1)
|
|||
|
_, days_in_month = calendar.monthrange(start_date.year, start_date.month)
|
|||
|
|
|||
|
end_date = start_date + timedelta(days = days_in_month)
|
|||
|
|
|||
|
return start_date, end_date
|
|||
|
|
|||
|
a_day = timedelta(days=1)
|
|||
|
first_day, last_day = get_month_range()
|
|||
|
|
|||
|
while first_day < last_day:
|
|||
|
print(first_day)
|
|||
|
first_day = first_day + a_day
|
|||
|
|
|||
|
# 在获取一个月天数的时候,calendar库会非常好用,monthrange会返回第一个工作日的日期和当月的天数
|
|||
|
|
|||
|
# 如果想要实现和Python内建的range一样的遍历效果,可以写一个生成器
|
|||
|
def date_range(start_date, end_date, step=timedelta(days=1)):
|
|||
|
while start_date < end_date:
|
|||
|
yield start_date
|
|||
|
start_date += step
|
|||
|
|
|||
|
for d in date_range(first_day, last_day):
|
|||
|
print(d)
|