In [1]:
import datetime

In [2]:
dt1 = datetime.datetime(year=2017, month=10, day=10, hour=15)

In [3]:
print(dt1)


2017-10-10 15:00:00

In [4]:
print(type(dt1))


<class 'datetime.datetime'>

In [5]:
dt2 = datetime.datetime(year=2019, month=1, day=1, hour=12)

In [6]:
print(dt2)


2019-01-01 12:00:00

In [7]:
td = dt2 - dt1

In [8]:
print(td)


447 days, 21:00:00

In [9]:
print(type(td))


<class 'datetime.timedelta'>

In [10]:
print(td.days)


447

In [11]:
print(td.seconds)


75600

In [12]:
print(td.microseconds)


0

In [13]:
print(td.total_seconds())


38696400.0

In [14]:
td_m = dt1 - dt2

In [15]:
print(td_m)


-448 days, 3:00:00

In [16]:
print(td_m.days)


-448

In [17]:
print(td_m.seconds)


10800

In [18]:
print(td_m.total_seconds())


-38696400.0

In [19]:
td_abs = abs(dt1 - dt2)

In [20]:
print(td_abs)


447 days, 21:00:00

In [21]:
print(td_abs.days)


447

In [22]:
print(td_abs.seconds)


75600

In [23]:
print(td_abs.total_seconds())


38696400.0

In [24]:
d1 = datetime.date(year=2017, month=10, day=10)

In [25]:
print(d1)


2017-10-10

In [26]:
print(type(d1))


<class 'datetime.date'>

In [27]:
d2 = datetime.date(year=2019, month=1, day=1)

In [28]:
print(d2)


2019-01-01

In [29]:
td = abs(d1 - d2)

In [30]:
print(td)


448 days, 0:00:00

In [31]:
print(type(td))


<class 'datetime.timedelta'>

In [32]:
# print(dt2 - d1)
# TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'datetime.date'

In [33]:
print(dt2.date())


2019-01-01

In [34]:
print(type(dt2.date()))


<class 'datetime.date'>

In [35]:
print(dt2.date() - d1)


448 days, 0:00:00

In [36]:
print(datetime.datetime.combine(d1, datetime.time()))


2017-10-10 00:00:00

In [37]:
print(type(datetime.datetime.combine(d1, datetime.time())))


<class 'datetime.datetime'>

In [38]:
print(dt2 - datetime.datetime.combine(d1, datetime.time()))


448 days, 12:00:00

In [39]:
print(datetime.datetime.now() - dt2)


34 days, 9:30:07.362784

In [40]:
print(datetime.date.today() - d2)


34 days, 0:00:00

In [41]:
td = datetime.timedelta(weeks=1, hours=20)

In [42]:
print(td)


7 days, 20:00:00

In [43]:
print(type(td))


<class 'datetime.timedelta'>

In [44]:
print(dt1)


2017-10-10 15:00:00

In [45]:
print(dt1 + td)


2017-10-18 11:00:00

In [46]:
print(dt1 - td)


2017-10-02 19:00:00

In [47]:
print(d1)


2017-10-10

In [48]:
print(d1 + td)


2017-10-17

In [49]:
print(d1 - td)


2017-10-03