You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

118 lines
3.8 KiB

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(exp_dates, date_cur):
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