需求:
- 你的代码需要在当前月份中循环每一天,想找到一个计算这个日期范围的高效方法。
作者的方法:
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)
_, 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)
我个人认为这个有点麻烦,有点脱了裤子放屁的感觉,其实个人认为使用pandas的date_range可能更加方便些,代码也少,也更加理解:
import pandas as pd
date_range_list=pd.date_range(start='2019-12-01',end='2019-12-31',freq='D')
for day in date_range_list:
... print(day)
感觉作者的方法都是使用python自带的包,但是确实有点代码太复杂了。
date_range方法:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.date_range.html
网友评论