zmk
2023-12-26 736a7162bc5e5da76cafacecd821a46efc09f143
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# -*- 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