////////////////
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class Aparcamiento {
public static void main
(String args
[]) {
///// lista de vehiculos registrados (residentes)
//// LO INICIALIZO Y CARGO
registrado.add("O8976");
registrado.add("P7564");
registrado.add("S7534");
registrado.add("P1111");
registrado.add("Z6966");
registrado.add("M1122");
registrado.add("L5897");
registrado.add("T2349");
boolean estaReg = false;
///// ALMACEN PARA INFORMES
//// declaro un ArrayList de Vehiculos que hacen estancias (otro ArrayList)
ArrayList<EstanciaVehiculo> estanciado = new ArrayList<EstanciaVehiculo>();
//////////////////////
/* MODULO PARA INTRODUCIR VEHICULO */
//////////////////////
//// primero cojo un coche y lo estaciono
Vehiculo vehiculo = new Vehiculo();
vehiculo.setMatricula("Z1234A");
vehiculo.setOficial(false);
Estancia estancia = new Estancia();
estancia.setHoraEntrada("19:00:23");
estancia.setHoraSalida("00:00:00");
estancia.estaEstacionado=true;
//// e introduzco el vehiculo en el arraylist de los que estan
EstanciaVehiculo ev = new EstanciaVehiculo();
ev.estancia = estancia;
ev.vehiculo = vehiculo;
estanciado.add(ev);
/////////// otro coche
vehiculo = new Vehiculo();
vehiculo.setMatricula("M1122");
vehiculo.setOficial(false);
estancia = new Estancia();
estancia.setHoraEntrada("09:00:23");
estancia.setHoraSalida("00:00:00");
estancia.estaEstacionado=true;
//// e introduzco el vehiculo en el arraylist de los que estan
ev = new EstanciaVehiculo();
ev.estancia = estancia;
ev.vehiculo = vehiculo;
estanciado.add(ev);
//////////////////////
/* MODULO PARA SACAR VEHICULO */
//////////////////////
String matriculaSalida
= "Z1234A"; String horaSalida
= "21:12:00"; estancia.estaEstacionado=true;
/////// comprobar que esta estacionado (aunque ya lo tiene el booleano)
boolean encontrado = false;
estancia.horaSalida=horaSalida;
EstanciaVehiculo evbuscado = null;
for (int i = 0; i< estanciado.size();i ++)
{
evbuscado = estanciado.get(i);
System.
out.
println("matricula estanciado::::: " + evbuscado.
vehiculo.
getMatricula());
if (evbuscado.vehiculo.getMatricula().equals(matriculaSalida))
{
System.
out.
println("ENCONTRADO"); encontrado = true;
///////// ahora vemos si esta registrado
for (int j = 0; j < registrado.size();j++)
{
if (((String)registrado.
get(j
)).
equals(evbuscado.
vehiculo.
getMatricula())) {
System.
out.
println("ESTA REGISTRADO ES OFICIAL O RESIDENTE"); estaReg = true;
}
}
////// lo quitamos
estanciado.remove(i);
darSalida(evbuscado, estancia, estaReg, almacen);
}
}
}
public static void darSalida
(EstanciaVehiculo evbuscado, Estancia estancia,
boolean estaReg,
ArrayList almacen
) {
float importe = 0;
evbuscado.estancia.estaEstacionado = false;
if (evbuscado.vehiculo.isOficial()) importe = 0;
try {
tiempoSalida = sdf.parse("2017-01-11 "+ estancia.horaSalida);
// TODO Auto-generated catch block
e.printStackTrace();
}
Date tiempoEntrada
= null; try {
tiempoEntrada = sdf.parse("2017-01-11 "+ estancia.getHoraEntrada());
// TODO Auto-generated catch block
e.printStackTrace();
}
int minutosEstacionado = tiempoSalida.getMinutes() - tiempoEntrada.getMinutes();
int horasEstacionado = tiempoSalida.getHours() - tiempoEntrada.getHours();
System.
out.
println("El Coche " + evbuscado.
vehiculo.
getMatricula() + " ha permanecido "+ horasEstacionado
+ " : " + minutosEstacionado
+ " minutos.");
if (!estaReg)
{
importe = horasEstacionado * 60 * evbuscado.estancia.getImporteMinutoNoRes();
importe = importe + minutosEstacionado* evbuscado.estancia.getImporteMinutoNoRes();
System.
out.
println(" tiene que pagar " + importe
+ " al tratarse de un no residente.");
}
else
{
if (evbuscado.vehiculo.isOficial())
{
importe = 0;
System.
out.
println(" Su estancia es gratuita ");
}
else if (evbuscado.vehiculo.isResidente())
{
importe = horasEstacionado * 60 * evbuscado.estancia.getImporteMinutoResidente();
importe = importe + minutosEstacionado* evbuscado.estancia.getImporteMinutoResidente();
System.
out.
println(" tiene que pagar " + importe
+ " al tratarse de un residente."); }
}
almacenGlobal(evbuscado, importe, minutosEstacionado, horasEstacionado, almacen);
}
public static void almacenGlobal
(EstanciaVehiculo ev,
float importe,
int minEst,
int horEst,
ArrayList almacen
) {
EstancVehImporte evi = new EstancVehImporte();
evi.setEv(ev);
evi.setImporte(importe);
evi.setTiempoHoras(horEst);
evi.setTiempoMinutos(minEst);
almacen.add(evi);
}