输入日期,获得该日期往后一个月同一天,连续获得多个月

def getNextDates(year,month,day,times):
    dateList = []
    for i in range(times):
        tmpYear = year + (month+i)//12
        tmpMonth = (month+i) % 12+1
        tmpDay = day
        try:
            dateList.append(datetime.date(tmpYear,tmpMonth,tmpDay))
        except:
            if tmpMonth == 12:
                dateList.append(datetime.date(tmpYear+1, 1, tmpDay))
            else:
                dateList.append(datetime.date(tmpYear, tmpMonth + 1, 1))
    return dateList



if __name__ == "__main__":
    print(getNextDates(2008,3,30,12))

执行结果

[datetime.date(2008, 4, 30), datetime.date(2008, 5, 30), datetime.date(2008, 6, 30), datetime.date(2008, 7, 30), datetime.date(2008, 8, 30), datetime.date(2008, 9, 30), datetime.date(2008, 10, 30), datetime.date(2008, 11, 30), datetime.date(2008, 12, 30), datetime.date(2009, 1, 30), datetime.date(2009, 3, 1), datetime.date(2009, 3, 30)]

相对获取单个结果,主要区别在于循环获取并处理年份和月份上,年份需要+月份除以12的整数部分,月份为循环获得月份除以12获得余数上面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值