我试图以一种条件在python中查找月份的第一天:如果我的当前日期超过了该月的25号,则第一个date变量将保存下个月的第一个日期,而不是当前月份。我正在执行以下操作:

import datetime
todayDate = datetime.date.today()
if (todayDate - todayDate.replace(day=1)).days > 25:
    x= todayDate + datetime.timedelta(30)
    x.replace(day=1)
    print x
else:
    print todayDate.replace(day=1)

有没有更干净的方法可以做到这一点?

最佳答案

这是一个明智的解决方案。

import datetime

todayDate = datetime.date.today()
if todayDate.day > 25:
    todayDate += datetime.timedelta(7)
print todayDate.replace(day=1)

原始代码示例要注意的一件事是,如果您正在测试一月的最后一天,则使用timedelta(30) 将导致麻烦 e。这就是为什么我使用7天的增量。

10-06 01:21