varad
varad

Reputation: 8029

python django converting date values in months or days

Suppose I have two dates.. date1 and date2 I want to subtract date2 from date1 and whatever comes the result I want to convert it in date.. Like:

if (date_1 - date2) > 4 months

Here how can I convert the resultant date into months or you can say in days..

Thanks in advance..

Upvotes: 0

Views: 1273

Answers (2)

karthikr
karthikr

Reputation: 99660

To check for relative dates, you can use one of two approaches:

import datetime

if d2 - datetime.timedelta(days= 4*365./12) > d1:
    # the difference is greater than 4 months.

If you need more accurate day conversions, you can use the relativedelta in dateutil module.

Example

from dateutil.relativedelta import relativedelta

if d2 - relativedelta(months=4) > d1:
    #The diff is greater than 4 months.

Demo:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2015, 2, 2, 13, 35, 39, 975914)
>>> d1 = datetime.datetime.now()
>>> d2 = datetime.datetime(2014, 2, 2, 13, 0, 0, 0)
>>> d1 - datetime.timedelta(days=4*365./12) > d2
True

>>> from dateutil.relativedelta import relativedelta
>>> d1 - relativedelta(month=4)
datetime.datetime(2015, 4, 2, 13, 35, 44, 735993)
>>> d1 - relativedelta(month=4) > d2
True

Upvotes: 2

Pavel Reznikov
Pavel Reznikov

Reputation: 3208

Subtraction of two dates returns a timedelta object:

>>> print (data1 - date2).days

A timedelta object represents a duration, the difference between two dates or times

Upvotes: 3

Related Questions