You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中计算两个日期的月份数?仅基于月份值而非30天规则

如何在Python中基于月份值计算两个日期的月份数?

根据需求,我们需要仅按月份数值统计两个日期之间的月份数(包含起始和结束月份),对应示例如下:

输入:开始日期:31-07-2022,结束日期:01-08-2022
输出:2个月
输入:开始日期:01-01-2022,结束日期:01-01-2023
输出:13个月

实现思路

核心逻辑是提取两个日期的年份和月份,计算年份差对应的总月份,加上月份差后再加1(确保包含起始月份),公式为:
总月份数 = (结束年份 - 开始年份) * 12 + (结束月份 - 开始月份) + 1

代码实现

使用Python内置的datetime模块解析日期字符串,再按上述公式计算:

from datetime import datetime

def get_month_count(start_date_str, end_date_str, date_format="%d-%m-%Y"):
    # 解析日期字符串为datetime对象
    start_dt = datetime.strptime(start_date_str, date_format)
    end_dt = datetime.strptime(end_date_str, date_format)
    
    # 计算总月份数
    year_diff = end_dt.year - start_dt.year
    month_diff = end_dt.month - start_dt.month
    total_months = year_diff * 12 + month_diff + 1
    
    return f"{total_months}个月"

# 测试示例
print(get_month_count("31-07-2022", "01-08-2022"))  # 输出:2个月
print(get_month_count("01-01-2022", "01-01-2023"))  # 输出:13个月

说明

该方法完全忽略日期中的“日”部分,仅基于年份和月份的数值进行计算,完美匹配需求中的统计规则。

内容的提问来源于stack exchange,提问作者Arul bala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:06:22