def dateComp(date_one,date_two):
|
|
date_one_id = date_one.split('.')
|
|
date_two_id = date_two.split('.')
|
|
if(int(date_one_id[2]) > int(date_two_id[2])):
|
|
return True
|
|
elif(int(date_one_id[2]) == int(date_two_id[2])):
|
|
if(int(date_one_id[1]) > int(date_two_id[1])):
|
|
return True
|
|
elif(int(date_one_id[1]) == int(date_two_id[1])):
|
|
if(int(date_one_id[0]) > int(date_two_id[0])):
|
|
return True
|
|
elif(int(date_one_id[0]) == int(date_two_id[0])):
|
|
return True
|
|
return False
|
|
|
|
def addItem(list_bas,item,item_loc):
|
|
new_list = list_bas[0:item_loc]
|
|
new_list.append(item)
|
|
for i in range(len(list_bas) - item_loc):
|
|
new_list.append(list_bas[item_loc + i])
|
|
return new_list
|
|
def expDate(current_date,prod_dates):
|
|
thrown_away = []
|
|
thrown_locs = []
|
|
thrown_number = 0
|
|
for i in range(len(prod_dates)):
|
|
if(dateComp(current_date,prod_dates[i])):
|
|
thrown_away.append(prod_dates[i])
|
|
thrown_locs.append(i)
|
|
|
|
for i in range(len(thrown_locs)):
|
|
prod_dates.pop(thrown_locs[i]-thrown_number)
|
|
thrown_number += 1
|
|
|
|
def dateSort(current_date,prod_dates):
|
|
loc = None
|
|
sorted_dates = []
|
|
prev_placed = True
|
|
|
|
for i in range(len(prod_dates)):
|
|
if(dateComp(prod_dates[i],current_date)):
|
|
sorted_dates.append(prod_dates[i])
|
|
loc = i
|
|
break
|
|
|
|
|
|
|
|
for i in range(len(prod_dates)):
|
|
if(loc == i):
|
|
continue
|
|
prev_placed = True
|
|
for j in range(len(sorted_dates)):
|
|
if(prev_placed):
|
|
if(j==0):
|
|
if(dateComp(sorted_dates[j],prod_dates[i])):
|
|
sorted_dates = addItem(sorted_dates,prod_dates[i],0)
|
|
prev_placed = False
|
|
continue
|
|
if(j == len(sorted_dates) - 1 ):
|
|
if(dateComp(prod_dates[i],sorted_dates[j])):
|
|
sorted_dates = addItem(sorted_dates,prod_dates[i],len(sorted_dates))
|
|
else:
|
|
sorted_dates = addItem(sorted_dates,prod_dates[i],len(sorted_dates)-1)
|
|
continue
|
|
|
|
if(dateComp(prod_dates[i],sorted_dates[j])):
|
|
if(dateComp(sorted_dates[j+1],prod_dates[i])):
|
|
sorted_dates = addItem(sorted_dates,prod_dates[i],j+1)
|
|
prev_placed = False
|
|
continue
|
|
if(dateComp(sorted_dates[j],prod_dates[i])):
|
|
if(dateComp(prod_dates[i],sorted_dates[j-1])):
|
|
sorted_dates = addItem(sorted_dates,prod_dates[i],i)
|
|
prev_placed = False
|
|
continue
|
|
|
|
return sorted_dates
|
|
|
|
def dateToint(sorted_dates,unsorted_dates,date_current):
|
|
date_num = 0
|
|
prev_date = None
|
|
sorted_dateInt = []
|
|
unsorted_dateInt = []
|
|
|
|
for i in range(len(sorted_dates)):
|
|
if(dateComp(date_current,sorted_dates[i])):
|
|
sorted_dateInt.append(-1)
|
|
continue
|
|
if(prev_date == sorted_dates[i]):
|
|
sorted_dateInt.append(date_num)
|
|
continue
|
|
date_num += 1
|
|
sorted_dateInt.append(date_num)
|
|
prev_date = sorted_dates[i]
|
|
|
|
for i in unsorted_dates:
|
|
unsorted_dateInt.append(sorted_dateInt[sorted_dates.index(i)])
|
|
|
|
return unsorted_dateInt
|
|
|
|
def listDif(list1,list2):
|
|
listOrig = list1
|
|
for i in list2:
|
|
if(i in listOrig):
|
|
listOrig.pop(listOrig.index(i))
|
|
|
|
return listOrig
|
|
|
|
|
|
def calcDate():
|
|
date_cur = '23.06.2018'
|
|
exp_dates = ['23.06.2019','22.06.2019','11.06.2018','24.06.2018','23.08.2018','23.04.2018']
|
|
exp_dates_process = exp_dates[:]
|
|
sorted_date = dateSort(date_cur,exp_dates_process)
|
|
date_int = dateToint(sorted_date,exp_dates,date_cur)
|
|
return date_int,sorted_date
|
|
|