This question originated when I came upon (another thread) about Python's datetime
and timedelta
objects.
I followed the update by jimgardener
and read the comments by eyquem
,and tried out some python code ..I am having a bad time understanding the way things work here(due to my newbie to python status)..I thought it was proper to ask a new question
import datetime
#for t1=23:30:00 PM
t1 = datetime.time(23,30,00)
#for t1=00:15:30 AM
t2 = datetime.time(0,15,30)
td1 = datetime.timedelta(hours=t1.hour,minutes = t1.minute,seconds=t1.second)
td2 = datetime.timedelta(hours=t2.hour,minutes = t2.minute,seconds=t2.second)
#substarcting timedeltas
tdiff = td2-td1
printing these variables yielded
td1 ==> datetime.timedelta(0, 84600)
td1.seconds ==> 84600
td2 ==> datetime.timedelta(0, 930)
td2.seconds ==> 930
tdiff ==> datetime.timedelta(-1, 2730)
When I looked at these results,I noticed that
td1.seconds (ie 84600) is equivalent to
84600/60 ==> 1410 minutes
1410/60 ==> 23.5 hours
or in short,td1 represents the duration **from previous midnight** to 23:30 PM
now ,
td2.seconds (ie 930) is equivalent to
930/60 ==> 15.5 minutes or 15 minutes and 30 seconds
which means td2 represents the duration from **that midnight**
to 00:15:30 AM
when tdiff is examined,I found that
tdiff ==> timedelta(-1,2730)
tdiff.seconds ==> 2730
tdiff.seconds/60 ==>45 minutes
this is the same as duration between t1(23:30:00 PM) and t2(00:15:30 AM)
assuming that t2 follows t1
My question is,since td1 is the duration from previous midnight to 23:30:00 PM and td2 is the duration from that midnight to 00:15:30 AM , how can their difference represent the duration between t2 and t1 ?
Can some python gurus explain
You can subtract a day from a python date using the timedelta object. You need to create a timedelta object with the amount of time you want to subtract. Then subtract it from the date.
timedelta() function. Python timedelta() function is present under datetime library which is generally used for calculating differences in dates and also can be used for date manipulations in Python. It is one of the easiest ways to perform date manipulations.
Timedeltas are differences in times, expressed in difference units, e.g. days, hours, minutes, seconds. They can be both positive and negative.
The timedelta
s don't represent time from a midnight, just an amount of time.
If it took me three hours minus four hours to do something, it would take me negative one hour.
The difference between the two timedelta
s is negative one day plus 45 minutes.
This is the same as negative 23 hours and 15 minutes.
15 minutes minus 23 hours and 30 minutes is negative 23 hours and 15 minutes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With