|
|
- 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
-
|