int prevDepartureTime = -1;
int dayOffset = 0;
for (int i = 0; i < timepoints.size(); ++i) {
JourneyTimePointElement timepoint = timepoints.get(i);
int arrivalTime = timepoint.getArrivalTime();
int departureTime = timepoint.getDepartureTime();
arrivalTime += dayOffset * MINUTES_IN_DAY;
while (arrivalTime < prevDepartureTime) {
arrivalTime += MINUTES_IN_DAY;
dayOffset++;
}
departureTime += dayOffset * MINUTES_IN_DAY;
while (departureTime < arrivalTime) {
departureTime += MINUTES_IN_DAY;
dayOffset++;
}
timepoint.setArrivalTime(arrivalTime);
timepoint.setDepartureTime(departureTime);
prevDepartureTime = departureTime;
}
}