这个地方提供两种方法:
方法一、通过lambda匿名函数获取到月份的每一天,然后把数据进行组装即可。
import time
fun = lambda year, month: list(range(1, 1+time.localtime(time.mktime((year,month+1,1,0,0,0,0,0,0)) - 86400).tm_mday))
fun(2013, 7)
output:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
方法二:通过获取到最后一天倒推的方式:
先通过一个方法,来获取到给定月份的最后一天,然后用迭代器来存储每一天即可
def last_day_of_month(self, any_day):
next_month = any_day.replace(day=28) + timedelta(days=4)
return next_month - timedelta(days=next_month.day)
def get_every_single_day(self, year, month):
"""获取给定月份每一天的数据"""
last_day = self.last_day_of_month(date(year, month, 1))
last_day_int = int(last_day.strftime("%Y-%m-%d")[-2:])
month_day_list = []
for i in range(last_day_int):
single_day = last_day - timedelta(days=i)
month_day_list.append(single_day)
return month_day_list
你们确定哪一种更方便呢,我在项目中使用的是第二种。