I\'m trying to find the first day of the month in python with one condition: if my current date passed the 25th of the month, then the first date variable will hold the first da
This is a pithy solution.
import datetime
todayDate = datetime.date.today()
if todayDate.day > 25:
todayDate += datetime.timedelta(7)
print todayDate.replace(day=1)
One thing to note with the original code example is that using timedelta(30)
will cause trouble if you are testing the last day of January. That is why I am using a 7-day delta.
This could be an alternative to Gustavo Eduardo Belduma's answer:
import datetime
first_day_of_the_month = datetime.date.today().replace(day=1)
You can use dateutil.rrule:
In [1]: from dateutil.rrule import *
In [2]: rrule(DAILY, bymonthday=1)[0].date()
Out[2]: datetime.date(2018, 10, 1)
In [3]: rrule(DAILY, bymonthday=1)[1].date()
Out[3]: datetime.date(2018, 11, 1)
Can be done on the same line using date.replace:
from datetime import datetime
datetime.today().replace(day=1)
Use arrow.
import arrow
arrow.utcnow().span('month')[0]