Como validar data num If

Boa noite Galera

Criei um método testDataNegativa no Junit que obviamente testa a data, caso o usuário insira uma data negativa o sistema retorna uma mensagem de erro.

Como faço pra validar uma data num if ? dia, mês e ano ?

da uma procurado por GregorianCalendar

Iae lineofgol blz.

No if, ficaria + ou - como ?

Primeiro resultado do Google :slight_smile: :

Calendar old = Calendar.getInstance();

old.set(Calendar.YEAR, 1990);

Calendar now = Calendar.getInstance();
 
 
System.out.println("Is old before now ? : " + old.before(now));

Cara uma data negativa seria uma data antes de cristo ? :slight_smile: brincks …

O Markus Alemao blz

Desculpa acho que nao me expressei direito

o que quero fazer é testar a data caso o usuário insira uma data negativa.

To fazendo varios testes numa classe com Junit, entao essa é uma possibilidade de erro.

por ex: validei a data caso o usuario deixe em branco

if (data == null)// aqui gera um excessao

o que voce quer é que o usuario nao digite uma data antes da data atual(hoje), so que lembrando se o usuário alterar a data do computador ele pode digitar uma data negativa que nem voce esta falando, então o ideal é cerca o sistema na questão de segurança

Acho que isso pode lhe ajudar :

            Calendar antes = Calendar.getInstance();
            antes.set(Calendar.YEAR, 2000);

            Calendar agora = Calendar.getInstance();

            if(antes.before(agora)){
                System.out.println("a data(antes) é anterior a data atual(agora)");
            }

            antes.set(Calendar.YEAR, 2020);

            if(antes.after(agora)){
                System.out.println("a data(antes) é posterior a data atual(agora)");
            }

Data negativa seria a data digitada ser anterior ao data atual???

Se for a resposta esta acima…é so utilizar o metodo before()…

não, seria inserir um numero negativo mesmo

Calendar antes = Calendar.getInstance();  
antes.set(Calendar.YEAR, -2000);

Confesso que nunca vi data negativa, tipo: ‘-2011’. mas algo util poderia ser.

int numero = 2011 //ou data atual, depende como vc quer.  
  
if(numero < 0){  
  // negativo...  
}  
else{  
  // positivo...  
}