Verificação

4 respostas
C

Olá galera!

Estou com o seguinte problema.

Como faço para comparar dois campos, exemplo abaixo:

O método abaixo funciona, mas o que compara “maior” > não funciona!

if (veiculo.getDataVenda() == (veiculo.getDataCompra())){
			validator.add(new ValidationMessage(
					"Data da Venda não pode ser maior que a Data da compra.", "veiculo.datas"));

“maior” >

if (veiculo.getDataVenda() > (veiculo.getDataCompra())){
			validator.add(new ValidationMessage(
						"Data da Venda não pode ser maior que a Data da compra.", "veiculo.datas"));

vlw!

4 Respostas

fernandosavio

Qual é o tipo de retorno? Date, String, Long??

C

Retorna uma data (Date) ou null caso esteje vazio!

nel

Oi,

tenta usar o método compareTo(Date anotherDate) da própria classe java.util.Date.

Só um adendo muito importante, o argumento do método não pode ser nulo, caso seja, irá gerar um NullPointerException, mas um simples if resolve isso :slight_smile:
Veja se resolve sua necessidade:

int result = 0; if(veiculo.getDataVenda() != null && veiculo.getDataCompra != null) result = veiculo.getDataVenda().compareTo(veiculo.getDataCompra);

E de acordo com a interface Comparable e a documentação desse método: the value 0 if the argument Date is equal to this Date; a value less than 0 if this Date is before the Date argument; and a value greater than 0 if this Date is after the Date argument.
Basta pegar o retorno e tratar como quiser :slight_smile:

Abraços.

C

Blz !

deu certo! fiz da seguinte forma!

if (veiculo.getDataCompra() != null && veiculo.getDataVenda() != null && 
				(veiculo.getDataVenda().before(veiculo.getDataCompra()))){
			validator.add(new ValidationMessage(
					"A Data da Compra não pode ser maior que a Data da Venda.", "veiculo.datas"));
		}

abraços

Criado 2 de outubro de 2011
Ultima resposta 3 de out. de 2011
Respostas 4
Participantes 3