Reputation: 8061
I was trying a simple date calculation by adding a certain number of days to a datetime.
import datetime
from dateutil.relativedelta import relativedelta
initial = datetime.date(2019, 3, 5)
delta = relativedelta(day=60)
print(f"Initial date: {initial.strftime('%d-%m-%Y')}")
new_dt = initial + delta
print(f"Final date: {new_dt.strftime('%d-%m-%Y')}")
However my output is:
Initial date: 05-03-2019
Final date: 31-03-2019
What is wrong here?
Upvotes: 0
Views: 228
Reputation: 16856
delta = relativedelta(day=60)
new_dt = initial + delta
The day of initial
is set (not incremented but set) to 60 but since there are only 31 days in that month it is set to 31.
https://dateutil.readthedocs.io/en/stable/relativedelta.html
If your intention is to increment the date by 60 days use
delta = datetime.timedelta(days=60)
OR
delta = relativedelta(days=60)
instead of
delta = relativedelta(day=60)
Upvotes: 1