Baixe em PDF Baixe em PDF

Existem várias formas de comparar datas usando Java. Internamente, na linguagem, uma data é representada como um ponto no tempo usando uma variável long . Nela, é guardada a quantidade de milissegundos que passaram desde o dia primeiro de janeiro de 1970. No Java, existe a classe Date (data), que contém vários métodos que ajudam a realizar comparações. Qualquer método de comparação vai basicamente comparar os tempos guardados em dois objetos Date.

Método 1
Método 1 de 4:

Usando o compareTo

Baixe em PDF
  1. A classe Date implementa a interface Comparable<Date>, logo, duas datas podem ser comparadas usando o método compareTo. Se as datas forem iguais, o método retornará zero. Se a data que está sendo comparada for anterior à data passada como argumento, um valor menor que zero será retornado. Se o contrário acontecer, o valor retornado será maior que zero. [1]
  2. Você precisará criar um objeto para cada data antes de compará-las. Um jeito de fazer isso é usar a classe SimpleDateFormat . Ela permite que você transforme facilmente uma data em um objeto de data.
       SimpleDateFormat 
       sdf 
       = 
       new 
       SimpleDateFormat 
       ( 
       "dd-MM-yyyy" 
       ); 
       //Definindo o formato de declaração de novos objetos de data. Use o mesmo formato ao declarar novas datas 
       Date 
       data1 
       = 
       sdf 
       . 
       parse 
       ( 
       "23-02-1995" 
       ); 
       //data1 é 23 de fevereiro de 1995 
       Date 
       data2 
       = 
       sdf 
       . 
       parse 
       ( 
       "31-10-2001" 
       ); 
       //data2 é 31 de outubro de 2001 
       Date 
       data3 
       = 
       sdf 
       . 
       parse 
       ( 
       "23-02-1995" 
       ); 
       //data3 é 23 de fevereiro de 1995 
      
  3. O código abaixo vai demonstrar cada caso, onde datas iguais, menores e maiores são passadas como argumento.
       data1 
       . 
       compareTo 
       ( 
       date2 
       ); 
       //data1 < data2, retorna um valor menor que 0 
       data2 
       . 
       compareTo 
       ( 
       date1 
       ); 
       //data2 > data1, retorna um valor maior que 0 
       data1 
       . 
       compareTo 
       ( 
       date3 
       ); 
       //data1 = data3, então um 0 será mostrado no console 
      
    Publicidade
Método 2
Método 2 de 4:

Usando o equals , o after e o before

Baixe em PDF
  1. Você pode usar estes métodos para ajudar a comparar as datas. Se duas datas se referirem ao mesmo ponto no tempo, o método equals retornará verdadeiro. Os exemplos abaixo vão usar as datas que já criamos quando demonstramos o método compareTo. [2]
  2. O código abaixo mostra um caso que retorna verdadeiro e um que retorna falso. Se a data1 for anterior à data2, o before retorna true (verdadeiro). Caso contrário, ele retorna false (falso).
       System 
       . 
       out 
       . 
       print 
       ( 
       data1 
       . 
       before 
       ( 
       data2 
       )); 
       //escreve true 
       System 
       . 
       out 
       . 
       print 
       ( 
       data2 
       . 
       before 
       ( 
       data2 
       )); 
       //escreve false 
      
  3. O código abaixo mostra um caso que retorna verdadeiro e um que retorna falso. Se a data2 for posterior à data1, ele retorna true. Caso contrário, ele retorna false.
       System 
       . 
       out 
       . 
       print 
       ( 
       data2 
       . 
       after 
       ( 
       data1 
       )); 
       //escreve true 
       System 
       . 
       out 
       . 
       print 
       ( 
       data1 
       . 
       after 
       ( 
       data2 
       )); 
       //escreve false 
      
  4. O código abaixo mostra um caso que retorna verdadeiro e um que retorna falso. Se as datas forem iguais, o método equals retornará verdadeiro. Caso contrário, ele retornará falso.
       System 
       . 
       out 
       . 
       print 
       ( 
       data1 
       . 
       equals 
       ( 
       data3 
       )); 
       //escreve true 
       System 
       . 
       out 
       . 
       print 
       ( 
       data1 
       . 
       equals 
       ( 
       data2 
       )); 
       //escreve false 
      
    Publicidade
Método 3
Método 3 de 4:

Usando a classe Calendar

Baixe em PDF
  1. A classe Calendar também tem os métodos compareTo, equals, after e before, e eles funcionam da mesma maneira que descrevemos acima na classe date. Como a informação de uma data é guardada no calendário, não há necessidade de extrair a data para fazer a comparação. [3]
  2. Para usar os métodos da classe Calendar, será necessário instanciar objetos desta classe. A boa notícia é que você pode extrair a data de instâncias Date criadas previamente.
       Calendar 
       cal1 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //declara cal1 
       Calendar 
       cal2 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //declara cal2 
       Calendar 
       cal3 
       = 
       Calendar 
       . 
       getInstance 
       (); 
       //declara cal3 
       cal1 
       . 
       setTime 
       ( 
       data1 
       ); 
       //aplica a data ao cal1 
       cal2 
       . 
       setTime 
       ( 
       data2 
       ); 
       cal3 
       . 
       setTime 
       ( 
       date3 
       ); 
      
  3. O código abaixo deve retornar true, pois cal1 é anterior a cal2.
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       before 
       ( 
       cal2 
       )); 
       //retorna true 
      
  4. O código abaixo deve retornar false, pois cal2 é anterior a cal1.
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       after 
       ( 
       cal2 
       )); 
       //retorna false 
      
  5. O código abaixo demonstra um exemplo de um caso verdadeiro e de um caso falso. O que define a resposta são as duas instâncias da classe Calendar usadas na comparação. O código deve retornar "true" e depois "false" na linha seguinte.
       System 
       . 
       out 
       . 
       println 
       ( 
       cal1 
       . 
       equals 
       ( 
       cal3 
       )); 
       //retorna true: cal1 == cal3 
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       equals 
       ( 
       cal2 
       )); 
       //retorna false: cal1 != cal2 
      
    Publicidade
Método 4
Método 4 de 4:

Usando o getTime

Baixe em PDF
  1. Entretanto, as abordagens que mostramos anteriormente são mais simples, por isso, dê preferência a elas. Esta será uma comparação de dois tipos primitivos de dados em java, por isso, ela pode ser feita usando os operadores "<", ">" e "==".
  2. Antes de comparar as datas, crie inteiros long e atribua a eles os objetos Date que criamos anteriormente. Por sorte, o método getTime() fará todo o trabalho para você.
       long 
       time1 
       = 
       getTime 
       ( 
       data1 
       ); 
       //declara o tipo primitivo time1 a partir de data1 
       long 
       time2 
       = 
       getTime 
       ( 
       data2 
       ); 
       //declara o tipo primitivo time2 a partir de data2 
      
  3. Para isso, use o símbolo “<” ao comparar dois inteiros. Como time1 é menor que time2, a primeira mensagem deve ser exibida. O else foi incluído apenas por questão de sintaxe.
       if 
       ( 
       time1 
       < 
       time2 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "data1 é anterior a data2" 
       ); 
       //aparecerá na tela, pois time1 < time2 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "data1 não é anterior a data2" 
       ); 
       } 
      
  4. Para isso, use o símbolo “>” ao comparar os dois inteiros. Como time1 é maior que time2, a primeira mensagem deve aparecer na tela. O else foi incluído apenas por questão de sintaxe.
       if 
       ( 
       time2 
       > 
       time1 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date2 é posterior a date1" 
       ); 
       //será mostrado, pois time2 > time1 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "date2 não é posterior a date1" 
       ); 
       } 
      
  5. Use o símbolo “==” para testar a igualdade ao comparar dois inteiros. Como time1 é igual a time3, a primeira mensagem deve aparecer na tela. Se o programa chegar ao else, significa que as datas não são iguais. [4]
       if 
       ( 
       time1 
       == 
       time2 
       ){ 
       System 
       . 
       out 
       . 
       println 
       ( 
       "as datas são iguais" 
       ); 
       } 
       else 
       { 
       System 
       . 
       out 
       . 
       println 
       ( 
       "as datas não são iguais" 
       ); 
       //aparecerá na tela, pois time1 != time2 
       } 
      
    Publicidade

Sobre este guia wikiHow

Esta página foi acessada 40 962 vezes.

Este artigo foi útil?

Publicidade