Comparar DATAS

4 respostas
MrDataFlex

Galera,
tentei usar if (“dd/mm/aaaa” > “dd/mm/aaaa”)

mas deu que String não é um tipo comparável assim…

como proceder então?

abraços

4 Respostas

Bravox

uma opção é usar os metódos after() , beforer() da classe Date

MrDataFlex

valeu… mas ja fiz funcionar com o compareTo

abçs!

lina

Oi,
então.. para comparação de String você não pode usar essa condição.. pois sabemos que ira funcionar somente a compração de igualdade (equals).

Para esse seu caso, você esta passando para a String uma data.. então acho que uma alternativa boa seria a utilização do compareTo.

Existe uma falha neste caso, tipo:

"03/02/2003".compareTo("03/03/2002")

neste caso, não iria funcionar o compare, ele iria indicar que a data 03/03/2002 seria maior.. pois ele busca cada caracter e verifica qual entre eles é o maior.

o que pensei foi o seguinte: use o comparteTo invertendo a data para Ano/mes/dia, ficando como o exemplo abaixo:

String
data_maior		=	"2004/03/01";
		
String
data_menor		=	"2003/03/01";
		
int
teste			=	data_maior.compareTo(data_menor);
		
System.out.println("Data maior "+teste);

Acho que assim não teria falhas na comparação..

Mas, para campos como data, é necessario um bom tratamento né.. =)

Tchauzin!

peerless
lina:
Oi, então.. para comparação de String você não pode usar essa condição.. pois sabemos que ira funcionar somente a compração de igualdade (equals).

Para esse seu caso, você esta passando para a String uma data.. então acho que uma alternativa boa seria a utilização do compareTo.

Existe uma falha neste caso, tipo:

"03/02/2003".compareTo("03/03/2002")

neste caso, não iria funcionar o compare, ele iria indicar que a data 03/03/2002 seria maior.. pois ele busca cada caracter e verifica qual entre eles é o maior.

o que pensei foi o seguinte: use o comparteTo invertendo a data para Ano/mes/dia, ficando como o exemplo abaixo:

String
data_maior		=	"2004/03/01";
		
String
data_menor		=	"2003/03/01";
		
int
teste			=	data_maior.compareTo(data_menor);
		
System.out.println("Data maior "+teste);

Acho que assim não teria falhas na comparação..

Mas, para campos como data, é necessario um bom tratamento né.. =)

Tchauzin!

Aqui, isso funcionou Lina...

Date a = new Date("03/02/2003");
        Date b = new Date("03/03/2002");
        if (a.compareTo(b) >= 1)
            System.out.println("A Maior");
        else
            System.out.println("B Maior");

:thumbup:

Criado 11 de abril de 2007
Ultima resposta 11 de abr. de 2007
Respostas 4
Participantes 4