I have one question for my first development project in Java9. I need to insert an Object with some info and a Date type, inside an ArrayList only if the time is not present in the ArrayList and if it respects the condition that every time in the ArrayList must be stored every 10 minutes.
So, for example the idea is something like that:
correct: [21:10, 21:20, 21:50, 22:00]
,
incorrect: [21:05, 21:10, 21:20, 21:55, 22:00]
I try something like this:
private static ArrayList<Order> orders = new ArrayList<Order>();
//ordinazione = orderTime,name,surname,adderess,pizze;
public Pizzeria() {
Order ord = new Order(name, surname, address, num_pizze);
isValid(ord);
}
private void isValid(Order ord) {
boolean valid = false;
long prew,current;
long add = ord.getOrderTime().getTime();
int min10 = 10*60*1000; //10 minutes
if(orders.size() == 0) {
addOrder(ord);
}else if(orders.size() == 1){
current = orders.get(0).getOrderTime().getTime() / 1000;
if(add > current) {
if(add - current >= min10) {
valid = true;
addOrder(order);
}
}else{
if(current - add >= min10) {
valid = true;
addOrder(ord);
}
}
}else{
int i = 0;
while (orders.size() > i) {
prec = i > 1 ? orders.get(i-1).getOrderTime().getTime() / 1000 : 0;
current = orders.get(i).getOrderTime().getTime() / 1000;
if (current - add >= min10 && add - prec >= min10) {
valid = true;
addOrder(ord);
break;
}
i++;
}
}
if(!valid) {
System.out.println("this time is not allowed!");
}
}
public void addOrder(Orderd ord) {
orders.add(ord);
}
any advice?