Comparar datas

Existe alguma forma simples (método, função, classe ou outro) de, quando se dá o número do dia do mês, o mês e o ano de duas datas poder compara-las?

E existe algum método que permita indicar o número de dias ocorrido entre elas?

http://www.guj.com.br/articles/8

Boa tarde,

recomendaria o uso do joda time.

Através das apis nativas do java é meio chato manipular datas…

http://joda-time.sourceforge.net/

chato pq?

	public static int comparaData( Date data1, Date data2 ) {
		return data1.compareTo( data2 );
	}

[quote=redr4gon]chato pq?

	public static int comparaData( Date data1, Date data2 ) {
		return data1.compareTo( data2 );
	}

[/quote]

Agora indica o número de dias ocorrido entre elas…

[quote=marcelo.bellissimo][quote=redr4gon]chato pq?

	public static int comparaData( Date data1, Date data2 ) {
		return data1.compareTo( data2 );
	}

[/quote]

Agora indica o número de dias ocorrido entre elas…[/quote]

Exato.

Através do Joda time, há um metodo Duration se não me engano, você vai conseguir pegar todas informações que deseja.

[]s

[quote=alejacquet][quote=marcelo.bellissimo][quote=redr4gon]chato pq?

	public static int comparaData( Date data1, Date data2 ) {
		return data1.compareTo( data2 );
	}

[/quote]

Agora indica o número de dias ocorrido entre elas…[/quote]

Exato.

Através do Joda time, há um metodo Duration se não me engano, você vai conseguir pegar todas informações que deseja.

[]s[/quote]

Tem coisa melhor… esse método aqui:

Days.daysBetween(new DateTime(someDate), new DateTime(today)).getDays();

Vi um post com a mesma dúvida esta semana mesmo… o pessoal não tá utilizando a poderosa ferramenta de busca do guj, que inclusive foi melhorada recentemente ( ninguém deu nem moral :cry: )

Cara, tem gente que não sabe nem usar o Goooooooooooooooooogle… imagina ferramenta de busca do fórum, hahaha…

Aliás… mudando de assunto, alguém concorda que essa JodaTime deveria vir incluso no Java? É muito bom!

Então…

Em uma conversa com os professores da Caelum, eles falaram que a Sun(Oracle) estava utilizando a JodaTime como base, mas vai saber… com essas enrolações se sair o Java 7 ta bom…

:roll:

Isso não é verdade desculpe. Quando tenho dúvidas a primeira coisa que faço é procurar, aqui e no google.

O trabalho que estou a fazer é para amanhã e eu precisava de resposta hoje, acha que precisando eu de resposta tão rápida não teria pesquisado primeiro? Se perguntei no fórum por algum motivo foi…

Mas a informação que encontrei, embora relacionada com o assunto não me disse nada e por isso preferi pessoal com experiência a responder mais claramente ao assunto, afinal é esse o objectivo de todo o fórum.

Ola pessoal por favor me tirem duas duvidas basicas.

Como faço para comparar a data no caso dela ser string , e nessa comparação sera levada em conta a hora ?

E a segunda pode ser simples pra vcs mas ainda nao consegui entender as classes e metodos do JAVA.

No caso abaixo nao seria apenas necessário eu atribuir a uma variavel o " variavel = new nome_da_classe.metodo_da_classe(argumentos); " ?

import java.util.*;
import java.util.*;
import java.text.*;
public class comparadatas {
	public static int comparaData( Date data1, Date data2 ) {   
	    return data1.compareTo( data2 );   
	}  

  public static void main(String args[]){
  
	  
	  String data1 = "25/10/2005";
	  
	  String  data2 = "12/08/2008";
	  
	  comparadatas resultado = new comparadatas.comparaData(data1,data2);
	  
	

}
}

Recebendo duas strings você precisará converte-las para DATE, mas prefira Calendar a API do DATE foi descontinuada em uma versáo se nao me engano na 1.1, algo do genero.

No caso abaixo o parametro esta errado voce esta instanciando compara datas quando precisaria retornar um int e nao compara datas. [acho]rs :roll:

Para essas comparaçoes ja existem apis de uma olhada em jodaTime…ou até mesmo a calendar se for realizar operaçoes simples

public class comparadatas {  
    public static int comparaData( Date data1, Date data2 ) {     
        return data1.compareTo( data2 );     
    }    

esse metodo avulso assim naum vai realizar nada…

o compareTo deve ser implementado quando se implementa a interface comparable…e dentro dele vc deve especificar como se compara a data1 e a data 2

compareTo retorna zero se as datas são iguais, um valor negativo se a data eh menor que o argumento e um positivo se é o contrário

a classe Date foi descontinuada e quase toda a classe foi depreciada mas a classe em si e o método compateTo não pq ele serve justamente pra algo simples: ver se uma data é menor ou igual ou maior que outra, sem erro nem complicações

se quer trabalhar bastante com datas pode-se usar o joda mesmo ou outra api… mas se quer manipular datas sem usar outra api pode usar a classe Calendar… que tem varios métodos e entre eles uma versão atualizada do compareTo :wink:

Obrigado a todos pela ajuda.

Estou tentando entender JAVA e a tal orientação a objetos. Mas desde já me frustrei com a dificudade da linguagem
Simples necessidades exigem muitas linhas de codigo.

Uma simples caixa de texto se resume a : JOptionPane bla bla bla.

Confesso que só vou estudar por que é uma linguagem muito requisitada no mercado. Mas . . .

Enfim muito obrigado.