import datetime
from dateutil import rrule
class TimeHelper():
def getMonthRangList(self, start_month, end_month):
"""
从开始日期到结束日期查询存在的月份列表,除去本月的数据
:param start_month:
:param end_month:
:return:
"""
start_time = datetime.datetime.strptime(start_month, "%Y-%m")
end_time = datetime.datetime.strptime(end_month, "%Y-%m")
month_count = rrule.rrule(rrule.MONTHLY, dtstart=start_time, until=end_time).count()
now_month = datetime.datetime.strptime(str(datetime.datetime.now())[:7], "%Y-%m")
if start_time == now_month == end_time:
return []
else:
month_list = []
for x in range(month_count):
year, month = [int(y) for y in str(start_time)[:7].split("-")]
month = month + x
if month > 12:
year += 1
month -= 12
elif month < 1:
year -= 1
month += 12
year, month = str(year), str(month)
if len(month) == 1:
month = "0" + month
month_list.append(year + "-" + month)
if str(now_month)[:7] in month_list:
month_list.remove(str(now_month)[:7])
return month_list
s=TimeHelper().getMonthRangList("2018-01","2018-11")
print(s)
效果如图: