Boa noite,
Ao comparar um Date com .after é como se utilizasse >. Entretanto gostaria de utilizar algo como >= .
Alguém pode me ajudar?
Obrigado!
Boa noite,
Ao comparar um Date com .after é como se utilizasse >. Entretanto gostaria de utilizar algo como >= .
Alguém pode me ajudar?
Obrigado!
Explique melhor o que tá querendo fazer.
Não é melhor fazer um próprio método equals nesse caso?
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?
Amigo, você tá querendo efetuar cálculos com datas, então eu lhe sugiro que use o jodatime.
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());
}
}
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
}
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.
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)) {
// ...
}