Getting the closest date to a given date

前端 未结 8 630
Happy的楠姐
Happy的楠姐 2020-12-03 08:50

Given this base date:

base_date = \"10/29 06:58 AM\"

I want to find a tuple within the list that contains the closest date to the bas

8条回答
  •  星月不相逢
    2020-12-03 09:07

    import time
    import sys
    
    #The Function
    def to_sec(date_string):
        return time.mktime(time.strptime(date_string, '%m/%d %I:%M %p'))
    
    
    #The Test
    base_date = "10/29 06:58 AM"
    base_date_sec = to_sec(base_date)
    result = None
    difference = sys.maxint
    list_date = [
            ('10/30 02:18 PM', '-103', '-107'),
            ('10/30 02:17 PM', '+100', '-110'), 
            ('10/29 02:15 AM', '-101', '-109') ]
    for date_str in list_date:
        diff_sec = to_sec(date_str[0])-base_date_sec
        if diff_sec >= 0 and diff_sec < difference:
            result = date_str
            difference = diff_sec
    print result
    

提交回复
热议问题