首页 > 解决方案 > 如何根据当前日期变量获取当前和下个月的第一个日历日

问题描述

我有一个日期变量调用 today_date,如下所示。我需要得到当前和下个月的第一个日历日。在我的例子中,today_date 是 2021 年 4 月 17 日,我需要创建另外两个变量调用 first_day_current 应该是 4/1/2021,first_day_next 应该是 5/1/2021。非常感谢任何建议

import datetime as dt    
today_date
'2021-04-17'

标签: python-3.xpython-datetime

解决方案


获取一个月的第一个日期非常简单——因为它等于1所有时间。您甚至可以在不需要datetime模块的情况下为您简化计算,如果today_date始终是字符串"Year-Month-Day"(或任何一致的格式 - 相应地解析它)

today_date = '2021-04-17'
y, m, d = today_date.split('-')
first_day_current = f"{y}-{m}-01"
y, m = int(y), int(m)
first_day_next = f"{y+(m==12)}-{m%12+1}-01"

如果你想使用datetime.date(),那么你无论如何都必须将字符串转换为 (year, month, date)int作为参数给出(或做today_date = datetime.date.today(). 然后.replace(day=1)得到 first_day_current. datetime.timedelta不能添加月份(最多几周),所以您需要为此使用其他库。但实际上要执行相同的操作需要更多的导入和计算。


推荐阅读