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

基于当前年月生成未来12个月日期列表的Python代码问题

解决Python生成未来12个月日期串的问题

你的原代码存在两个核心问题:一是年份固定为'2022',无法自动处理跨年;二是循环仅覆盖当前年份剩余月份,没有生成后续年份的月份。以下是两种可行的修改方案:

方案一:仅用标准库datetime实现

通过手动计算月份和年份的变化,自动处理跨年逻辑,同时确保输出12个月份:

import datetime

# 获取当前日期的年份和月份
current_year = datetime.date.today().year
current_month = datetime.date.today().month

# 生成从当前月的下一个月开始的12个日期
for i in range(12):
    # 计算目标月份:当前月 + i + 1(因为要从下一个月开始)
    target_month = current_month + i + 1
    target_year = current_year
    
    # 处理跨年情况
    if target_month > 12:
        target_year += target_month // 12
        target_month = target_month % 12
        # 处理刚好是12的倍数的情况(如12月+12个月=次年12月)
        if target_month == 0:
            target_month = 12
            target_year -= 1
    
    # 格式化输出,月份补零为两位数字
    print(f"{target_year} {target_month:02d} 01")

方案二:用dateutil简化逻辑

python-dateutil库的relativedelta可以直接处理月份增减,无需手动计算跨年,代码更简洁:

先安装依赖:

pip install python-dateutil

然后编写代码:

import datetime
from dateutil.relativedelta import relativedelta

current_date = datetime.date.today()

# 生成从当前月的下一个月开始的12个日期
for i in range(1, 13):
    target_date = current_date + relativedelta(months=i)
    print(f"{target_date.year} {target_date.month:02d} 01")

两种方案都能输出你期望的格式,比如当前为2022年9月时,会生成从2022年10月到2023年9月的所有日期串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:57:25