private void calculerHeuresLivraison() throws HorsPlageException {
        int tempsSecondes;
        List<Troncon> listTroncons;
        PlageHoraire plage = null;
        Calendar heureDebut = Calendar.getInstance();
        double vitesseKmH=0;
        
        for(Chemin chemin : this.getCheminsResultats()) {
            listTroncons = chemin.getTroncons();
            tempsSecondes = 0;
            int metres = 0;
            for(Troncon troncon : listTroncons) {
                vitesseKmH = ((troncon.getVitesse()*10)/3.6);
                tempsSecondes += (troncon.getLongueurMetre()/(vitesseKmH));
                metres+=troncon.getLongueurMetre();
            }
            Noeud noeudDest = zone.getNoeudById(chemin.getDestination().getIdNoeud());
            if(noeudDest.getId() != zone.getEntrepot().getId()){
                Livraison livraisonDest = (Livraison) noeudDest;
                if(plage == null){
                    plage = livraisonDest.getPlage();
                    heureDebut.setTime(plage.getHeureDebut());
                }
                heureDebut.add(Calendar.SECOND, tempsSecondes);
                if (heureDebut.getTime().after(livraisonDest.getPlage().getHeureFin())){
                    livraisonDest.setEtatLivraison(EtatNoeud.NON_LIVRE);
                    throw new HorsPlageException(livraisonDest);
                } else if (heureDebut.getTime().before((livraisonDest.getPlage().getHeureDebut()))) {
                        heureDebut.setTime(livraisonDest.getPlage().getHeureDebut());
                }
                livraisonDest.setHeureLivraison(heureDebut.getTime());
                heureDebut.add(Calendar.MINUTE, Livraison.TPS_LIVRAISON_MIN);
            }
        }
    }