[RESOLVIDO]Erro ao calcular a diferença entre dias

Estou fazendo um projeto que tem que calcular o valor total de uma diaria, criei um método e consigo pegar o valor da diária do quarto tranquilo, porém quando ele pega a data de entrada e saida a diferença é sempre zero, segue o metodo abaixo.

        @Override
	@Transactional
	public String insert() {			
		this.reservasBC.insert(getBean());
		quartoOcupado();
		valorTotal();
		return getPreviousView();
	}

public void valorTotal(){
		Quarto idquarto = this.getBean().getIdquarto();
		Quarto quarto = quartoBC.load(idquarto.getId());
		Reservas idreservas = this.getBean();
		Reservas reserva = reservasBC.load(idreservas.getId());
		Date dataChegada = idreservas.getDiaEntrada();
                Date dataSaida = idreservas.getDiaSaida();        
                long diferencaMilissegundos = dataSaida.getTime() - dataChegada.getTime();
                 int diferencaHoras = (int) (diferencaMilissegundos/1000/60/60/24);
                int quocienteDiferencaDias = diferencaHoras / 24;
		idreservas.setTotal(((quarto.getTipoQuarto().getValorDiaria()) * quocienteDiferencaDias) + idreservas.getCustoAdicional());
		
	}

Quando eu coloco reserva.getDiaEntrada() em em vez de idreservas.getDiaEntrada(); está vindo null. Abaixo como faço a chamada das datas na página

      <h:outputLabel value="#{messages['reservas.label.dt_entrada']}: " for="entrada" styleClass="text-input" >
						<f:convertDateTime pattern="dd/MM/yyyy"/>
					</h:outputLabel>					
					<p:calendar id="entrada" value="#{reservasEditMB.bean.diaEntrada}"
						title="#{messages['reservas.label.dt_entrada']}" pattern="dd/MM/yyyy">
						<f:convertDateTime pattern="dd/MM/yyyy"/>
					</p:calendar>
					<p:message for="entrada" />
					
					<h:outputLabel value="#{messages['reservas.label.dt_saida']}: " for="saida" styleClass="text-input" >
						<f:convertDateTime pattern="dd/MM/yyyy"/>
					</h:outputLabel>					
					<p:calendar id="saida" value="#{reservasEditMB.bean.diaSaida}"
						title="#{messages['reservas.label.dt_saida']}" pattern="dd/MM/yyyy">
						<f:convertDateTime pattern="dd/MM/yyyy"/>
					</p:calendar>
					<p:message for="saida" />

Cara você já viu o Ltn4java LTN4Java com ele você pode fazer a comparação entre datas por exemplo:


public Date datafinal;

        DataCompare dc = new DataCompare();
        numeroquefalta = dc.compareWithDateToday(datafinal);

Existe outros metodos de comparar, dá uma olhada.

Obs: Vale lembrar que se o cadastro é feito hoje, se passar um segundo ele diminui.

Pesquise sobre API JodaTime, é simplesmente sensacional as usabilidades dela.

[quote=MiguelCP]Cara você já viu o Ltn4java LTN4Java com ele você pode fazer a comparação entre datas por exemplo:


public Date datafinal;

        DataCompare dc = new DataCompare();
        numeroquefalta = dc.compareWithDateToday(datafinal);

Existe outros metodos de comparar, dá uma olhada.

Obs: Vale lembrar que se o cadastro é feito hoje, se passar um segundo ele diminui.[/quote]

Baixei essa lib e ela é bastante util e arrumou essa comparação de dados abaixo como o código ficou

public void valorTotal(){
		Quarto idquarto = this.getBean().getIdquarto();
		Quarto quarto = quartoBC.load(idquarto.getId());
		Reservas idreservas = this.getBean();
		Reservas reserva = reservasBC.load(idreservas.getId());
		DataCompare dc = new DataCompare();
		int dt = (int) dc.getDateDifference(reserva.getDiaSaida(), reserva.getDiaEntrada());
		idreservas.setTotal((quarto.getTipoQuarto().getValorDiaria()) * dt); // o dt está vindo zero		
	}

Muito obrigado MiguelCP e luxu ajudou bastante!!!