// Estimate carrier arrival time
Date estimatedArrivalDate = carrierMovement.arrivalTime().get();
if( c.loadEvent.completionTime().get().after( carrierMovement.departureTime().get() ) )
{
long start = carrierMovement.departureTime().get().getTime();
long end = carrierMovement.arrivalTime().get().getTime();
long duration = end - start;
estimatedArrivalDate = new Date( c.loadEvent.completionTime().get().getTime() + duration );
// ... We could notify cargo owner if we already now know that we will miss the next ship
}