[RESOLVIDO] - Dúvida ao compara DATE

8 respostas
leo.alvesneuwald

Boa noite,

Ao comparar um Date com .after é como se utilizasse >. Entretanto gostaria de utilizar algo como >= .

Alguém pode me ajudar?

Obrigado!

8 Respostas

D

Explique melhor o que tá querendo fazer.

A

Não é melhor fazer um próprio método equals nesse caso?

leo.alvesneuwald
Date dataHojeDate = new Date();
Date dataOntemDate = new Date();

if (dataHojeDate.after(dataOntemDate)){
//Faz
}

Neste exemplo acima, eu usei after, o que vai acabar fazendo que com que somente seja entrado no IF quando o dataHojeDate for ‘MAIOR’ que o dataOntemDate, e no fundo que eu queria que acontecesse é que se eles estivessem no mesmo dia ou se o dataHojeDate fosse maior entrasse no if.
Até poderia fazer algo com o SimpleDateFormat para fazer isso e tal, mas achei que ia ficar mta gambiarra.

Alguém sabe algo?

D

Amigo, você tá querendo efetuar cálculos com datas, então eu lhe sugiro que use o jodatime.

Murad

Cara não use a classe Date. Ela não funciona em muitos casos. Use Calendar

public static void main(String [] args){
		
		Calendar ontem = Calendar.getInstance();
		Calendar hoje    = Calendar.getInstance();
		
		// Volta um dia
		ontem.roll(Calendar.DAY_OF_MONTH, -1);
		
		
		if ( hoje.get(Calendar.DAY_OF_MONTH) > ontem.get(Calendar.DAY_OF_MONTH ) )
				{
			
					System.out.println(hoje.getTime());
					System.out.println(ontem.getTime());
			
				}
		
		
	}
pmlm

Esse if com Calendar não é o que ele pretende, já que com meses diferentes, isso so vai comparar o dia.

O Date serve perfeitamente para o que ele quer… Em vez de after, só tens de usar not before.

Date dataHojeDate = new Date();  
    Date dataOntemDate = new Date();  
      
    if (!dataOntemDate.before(dataHojeDate)){  
    //Faz  
    }
leo.alvesneuwald

pmlm

Velho, PERFEITO, pqp como o cara não se liga numa coisa dessas.

Ah, sobre o jodatime não teria como usar pq é no Android.

Trebloc

Se não ficar mais "feio", outra opção seria algo assim:

Date dataHoje = new Date();  
Date dataOntem = new Date();  
      
if (dataHoje.after(dataOntem) || dataHoje.equals(dataOntem)) {
    // ...
}
Criado 5 de maio de 2012
Ultima resposta 6 de mai. de 2012
Respostas 8
Participantes 6