2017-07-19 307 views
0

我有一个返回这些日期的日期列表(date_list)。我现在需要找出最接近另一个日期的日期(base_date)。在日期列表中找出最接近的日期django queryset python

我使用Python和Django的得到这个数据

date_list = [datetime.date(2017, 6, 18), datetime.date(2018, 2, 4), datetime.date(2018, 2, 11), datetime.date(2018, 4, 23), datetime.date(2018, 6, 17)] 

base_date = [datetime.date(2016, 4, 7)] 

回答

0

下面的代码应该能够提供您预期的结果为Python 3。

import datetime 
date_list = [datetime.date(2017, 6, 18), datetime.date(2018, 2, 4), datetime.date(2018, 2, 11), datetime.date(2018, 4, 23), datetime.date(2018, 6, 17)] 
base_date = [datetime.date(2016, 4, 7)] 

closest_date = '' 
lowest_time_delta = 99999999 

for my_date in date_list: 
    current_time_delta = abs((my_date - base_date[0]).total_seconds()) 
    if current_time_delta < lowest_time_delta: 
     closest_date = my_date 
     lowest_time_delta = current_time_delta 

print (closest_date) 
0
import datetime                              
date_list = [datetime.date(2018, 2, 4),                        
      datetime.date(2018, 2, 11),                        
      datetime.date(2018, 4, 23),                        
      datetime.date(2017, 6, 18),                        
      datetime.date(2018, 6, 17)]                        

base_date = datetime.date(2016, 4, 7)                        

min_delta = min([abs(base_date - one) for one in date_list])                   

closest_index = delta_list.index(min_delta) 

date_list [closest_index]是最接近