views:

66

answers:

3

I have two time objects

Example

time.struct_time(tm_year=2010, tm_mon=9, tm_mday=24, tm_hour=19, tm_min=13, tm_sec=37, tm_wday=4, tm_yday=267, tm_isdst=-1)


time.struct_time(tm_year=2010, tm_mon=9, tm_mday=25, tm_hour=13, tm_min=7, tm_sec=25, tm_wday=5, tm_yday=268, tm_isdst=-1)

I want to have the difference of those two? How could I do that? I need minutes and seconds only, as well as the duration of those two.

Thanks!

+1  A: 

You can use time.mktime(t) with the struct_time object (passed as "t") to convert it to a "seconds since epoch" floating point value. Then you can subtract those to get difference in seconds, and divide by 60 to get difference in minutes.

DerfK
A: 

Time instances do not support the subtraction operation. Given that one way to solve this would be to convert the time to seconds since epoch and then find the difference. For e.g.

>>> t1 = time.localtime()
>>> t1
time.struct_time(tm_year=2010, tm_mon=10, tm_mday=13, tm_hour=10, tm_min=12, tm_sec=27, tm_wday=2, tm_yday=286, tm_isdst=0)
>>> t2 = time.gmtime()
>>> t2
time.struct_time(tm_year=2010, tm_mon=10, tm_mday=13, tm_hour=4, tm_min=42, tm_sec=37, tm_wday=2, tm_yday=286, tm_isdst=0)

>>> (time.mktime(t1) - time.mktime(t2)) / 60
329.83333333333331
Manoj Govindan
+2  A: 
>>> t1 = time.mktime(time.strptime("10 Oct 10", "%d %b %y"))
>>> t2 = time.mktime(time.strptime("15 Oct 10", "%d %b %y"))
>>> print datetime.timedelta(seconds=t2-t1)
5 days, 0:00:00
jweyrich