在日期列表中找出最接近的日期django queryset python
问题描述:
我有一个返回这些日期的日期列表(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)]
答
下面的代码应该能够提供您预期的结果为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)
答
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]是最接近