Python 获得指定日期范围内的日期和月份

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
#获得指定日期之间的日期数,时间格式为 %Y-%m-%d
from datetime import datetime,timedelta
def getDayIter(start_date, end_date):
    #时间格式为 %Y-%m-%d
    out_day_arr = []
    dt_date = datetime.strptime(start_date, '%Y-%m-%d')
    dt_str = start_date
    while dt_str <= end_date:
        out_day_arr.append(dt_str)
        dt_date = dt_date + timedelta(days=1)
        dt_str = dt_date.strftime('%Y-%m-%d')
    return out_day_arr
 
 
 
#获得指定月份之间的月份数,时间格式为 %Y-%m
from datetime import datetime,timedelta
import calendar
def getMonthIter(start_month, end_month):
    #时间格式为 %Y-%m
    out_month_arr = []
    dt_date = datetime.strptime(start_month, '%Y-%m')
    dt_str = start_month
    while dt_str <= end_month:
        out_month_arr.append(dt_str)
        dt_date = dt_date + timedelta(days=calendar.monthrange(dt_date.year, dt_date.month)[1])
        dt_str = dt_date.strftime('%Y-%m')
    return out_month_arr

  进行测试

1
2
3
4
5
6
7
8
print(getMonthIter('2021-01', '2022-03'))
 
#输出
#['2021-01', '2021-02', '2021-03', '2021-04', '2021-05', '2021-06', '2021-07', #'2021-08', '2021-09', '2021-10', '2021-11', '2021-12', '2022-01', '2022-02', #'2022-03']
 
print(getDayIter('2021-12-23', '2022-01-12'))
#输出
#['2021-12-23', '2021-12-24', '2021-12-25', '2021-12-26', '2021-12-27', '2021-#12-28', '2021-12-29', '2021-12-30', '2021-12-31', '2022-01-01', '2022-01-02', #'2022-01-03', '2022-01-04', '2022-01-05', '2022-01-06', '2022-01-07', '2022-#01-08', '2022-01-09', '2022-01-10', '2022-01-11', '2022-01-12']

  

posted @   Blues.huang  阅读(1045)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示