/** * UC 5_1 Metode que calcula el preu final de la reserva, tenint en compte totes les possibles * penalitzacions. Tambe canvia el estat de la moto. */ public void cobrarReserva() { String diaActual, horaActual; Consola.escriu("Introdueix la data 'actual' (dd/mm/aaaa):"); diaActual = Consola.llegeixString(); Consola.escriu("Introdueix la hora 'actual' (hh:mm:ss): "); horaActual = Consola.llegeixString(); Data dataEntrega = Data.crearData(diaActual, horaActual); // Data dataEntrega = new Data(); //es pot seleccionar aquesta opcio si es vol fer automatic. float diferencia; clientReserva.setEstat("NO RESERVA"); diferencia = dataEntrega.calcularDiferencia(dataFinal); if (diferencia > 0.0f) { penalitzacio = diferencia * 2; Consola.escriu("La moto s'ha entregat amb retras.\n La reserva tindra un preu adicional de "); Consola.escriu(penalitzacio); penalitzacioTemps = true; preu += penalitzacio; Consola.escriu("€ tinguent un preu final de "); Consola.escriu(preu); Consola.escriu("€.\n"); } gestionarAveria(); }
/** * UC 3_9 Metode que estableix el preu de una reserva basant-se en les dates, sense tenir en * compte penalitzacions. Tambe es te en compte si el client es vip. */ public void calcularPreu() { int hores; hores = dataFinal.calcularDiferencia(dataInicial); this.preu = (hores / 24) * 15 + hores % 24; if (this.clientReserva.getVip()) { this.preu = (float) (this.preu * 0.9); } Consola.escriu("La reserva te un preu de: "); Consola.escriu(this.preu); Consola.escriu("€.\n"); Consola.escriu("Duracio de la reserva: "); Consola.escriu(hores / 24); Consola.escriu(" dia/es i "); Consola.escriu(hores % 24); Consola.escriu(" hora/es.\n"); }