Comparando datas

1 resposta
D

Olá a todos
como faço fazer comparaçao entre duas datas?

eu ja tentei por equals e compareto mas n deu certo…

tipo assim:

if(datasistema.equals(dataqueousuariodigitou){

…

}

e assim:

if(datasistema.compareTo(dataqueousuariodigitou) == 0){

…

}

Tentei esses dois mas n deu certo, vale a pena salientar que eu nao levo em consideraçao a hora (hora minuto e segundo), mas sim apenas que a data seja igual…

1 Resposta

InSeOfKn

Ola diegomadson

comecei agora a programar e nunca tinha mexido com datas

e lendo o tutorial que achei aqui no GUJ ([url]http://www.guj.com.br/article.show.logic?id=8[/url])
descobri onde esta o seu erro

quando se ussa compareTo se compara até os milissegundos e você não quer isso, né?

por isso seguindo a dica no final do tutorial vi que se deseja comparar apenas o dia, mês e ano

tem que se comparar usando String

aqui vai um exemplo de que fiz para solucionar seu problema e aprender um pouco de data

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


public class CompareData {
	public static void main(String[] args){
		Date data = new Date();
		SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
		String hoje = formatador.format(data); // String com a data de hoje no formato dia/mês/ano
		
		Scanner entrada = new Scanner(System.in);
		
		System.out.println("digite um dia");
		int diaInf = entrada.nextInt();
		
		System.out.println("digite um mês");
		int mesInf = entrada.nextInt();
		
		System.out.println("digite um ano ( ex: 1999)");
		int anoInf = entrada.nextInt();
		
		String dataInf = diaInf+"/"+mesInf+"/"+anoInf;
		
		if(hoje.equals(dataInf)){
			System.out.print("A data Informada é a data de hoje");
		}else{
			System.out.print("A data informada é diferente da data de hoje");
		}
	}
}

até a próxima!

Criado 10 de outubro de 2010
Ultima resposta 10 de out. de 2010
Respostas 1
Participantes 2