Joel G Mathew
Joel G Mathew

Reputation: 8061

Adding dates with python

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

Answers (1)

mujjiga
mujjiga

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

Related Questions