Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: Get minutes overlap between time range

date_base_start = datetime(2013, 07, 17, 20, 0) #July 17,2013 08:00PM
date_base_end = datetime(2013, 07, 17, 22, 0)   #July 17,2013 10:00PM

date_1_start = datetime(2013, 07, 17, 21, 0)    #July 17,2013 09:00PM
date_1_end = datetime(2013, 07, 17, 21, 30)     #July 17,2013 09:30PM

date_2_start = datetime(2013, 07, 17, 19, 0)    #July 17,2013 07:00PM
date_2_end = datetime(2013, 07, 17, 23, 0)      #July 17,2013 11:00PM

date_3_start = datetime(2013, 07, 17, 19, 0)    #July 17,2013 07:00PM
date_3_end = datetime(2013, 07, 17, 22, 0)      #July 17,2013 10:00PM

#Expected Result date_base_start, date_base_end VS the ff:
#     date_1_start, date_1_end : 30min
#     date_2_start, date_2_end : 120min
#     date_3_start, date_3_end : 120min

What python datetime manipulation is needed to solve this problem?

like image 286
rechie Avatar asked Dec 12 '22 13:12

rechie


1 Answers

delta = min(date_1_end,date_base_end)-max(date_1_start,date_base_start)
#
# Check if delta is negative, 
#
if delta.seconds < 0:
         print 0
else:
         print delta.seconds/60.0
like image 195
santosh.ankr Avatar answered Jan 02 '23 16:01

santosh.ankr