I have a list of SalesOrders, both Inactive and Active. I want to loop through this entire list and set the length of time each SalesOrder was Active for. (The list is already ordered by StartTime)
My loop is as follows:
for(int i = 0; i < salesOrders.size(); i++) {
if(salesOrders.get(i).getStatus() == RecordStatus.ACTIVE) {
ELDDutyLog activeSalesOrder = salesOrders.get(i);
for(int j = i + 1; j < salesOrders.size(); j++) {
if(salesOrders.get(j).getStatus() == RecordStatus.ACTIVE) {
ELDDutyLog nextActiveSalesOrder = salesOrders.get(j);
salesOrders.get(i).setActiveDurationMinutes(
Minutes.minutesBetween(
activeSalesOrder.getStartTime(),
nextActiveSalesOrder.getStartTime()
).getMinutes()
);
break;
}
}
}
}
return salesOrders;
While this approach works, I feel there must be a better way of doing this, possibly by using Java 8? Can anyone provide me with any direction around this?