# -*- coding: utf-8 -*-
|
"""
|
Created on Wed Nov 1 11:34:08 2023
|
|
@author: ZMK
|
"""
|
from datetime import datetime
|
import calendar
|
from dateutil import rrule
|
import json
|
import Base as base
|
import os
|
|
|
|
#根据年月日获取最后一天的日期
|
def last_day_of_month(year, month, day):
|
|
d = calendar.monthrange(year, month)
|
last_day = str(year) +"-" +str(month) + "-" + str(d[1])
|
return last_day
|
|
def last_day_of_month_start(month):
|
|
start_date = month.split('-')
|
last_day= last_day_of_month(int(start_date[0]),int(start_date[1]),1)
|
return last_day
|
|
|
|
def get_months_in_range_ym(start_time, end_time):
|
|
start=datetime.strptime(start_time,'%Y-%m')
|
end=datetime.strptime(end_time,'%Y-%m')
|
|
count =rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).count()
|
|
months=[]
|
for i in range(count) :
|
m = rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).__getitem__(i)
|
formatted_date = m.strftime("%Y-%m")
|
months.append(formatted_date)
|
|
return months
|
|
|
def get_months_in_range_count(start_time, end_time):
|
|
start=datetime.strptime(start_time,'%Y-%m')
|
end=datetime.strptime(end_time,'%Y-%m')
|
count =rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).count()
|
return count
|
|
|
def get_months_in_range(start_time, end_time):
|
|
start=datetime.strptime(start_time,'%Y-%m')
|
end=datetime.strptime(end_time,'%Y-%m')
|
|
count =rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).count()
|
|
months=[]
|
for i in range(count) :
|
m = rrule.rrule(rrule.MONTHLY,dtstart=start,until=end).__getitem__(i)
|
formatted_date = m.strftime("%Y-%m")
|
start_date = formatted_date.split('-')
|
last_day= last_day_of_month(int(start_date[0]),int(start_date[1]),1)
|
|
months.append(formatted_date+"-01" +"," + last_day)
|
|
return months
|
|
|
|