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

在Django中获取当月最后一天并计算该日期往后38天的实现方法

解法实现

需求1:获取invoice.created_at所属月份的最后一天

你已经提前计算出了下月首日next_month_first_date,直接用该日期减去1天即可得到当月最后一天:

import datetime

# 基于已有下月首日变量计算,无需额外引入其他库
this_month_last_day = next_month_first_date - datetime.timedelta(days=1)
# 计算结果:datetime.date(2021, 11, 30),即你需要的30/11/2021

如果你不想依赖提前计算的next_month_first_date,也可以用Python标准库calendar实现:

import calendar

# monthrange返回(当月第一天是周几, 当月总天数)
_, total_days = calendar.monthrange(invoice.created_at.year, invoice.created_at.month)
this_month_last_day = invoice.created_at.replace(day=total_days)

需求2:计算当月最后一天往后推38天的日期

直接给this_month_last_day加上38天的时间差即可:

target_date = this_month_last_day + datetime.timedelta(days=38)
# 计算结果:datetime.date(2022, 1, 7),即你需要的7/01/2022

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:36:04