在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
相关产品推荐
相关产品推荐

