Idade no ano bissexto

Como faço para saber se o dia do nascimento e o mês do nascimento que irei digitar é valido?Pois de acordo com o ano atual(2013) ele não poderá ser 29 em fevereiro.
E como faço para saber se o mês tem 31,30,28 ou 29(em um ano Bissexto)?
Pois preciso digitar uma data de nascimento e ela precisa estar de acordo com as regras.

Obs: Não faço ideia de por onde começar,então por enquanto não tenho nada feito para colocar aqui pra me darem uma luz. :frowning:

Dá uma pesquisada em Calendar(), é a melhor forma q conheço para tratar datas.

Essa é a formula para saber se um ano é bissexto:

se ano é divisível por 400 então é bissexto senão se ano divisível por 100 então não é bissexto senao se ano divisível por 4 é bissexto senão não é bissexto

Anos bissextos tem 29 dias em fevereiro, não bissextos 28. Não existem anos com 30 e nem 31 dias nesse mês.

Quis dizer quanto aos outros meses quando disse 31 e 30,pq se eu colocar 31 em um mês que na verdade só vai até 30,um aviso deve ser mostrado,e é isso que eu não faço ideia de como fazer,mas obrigado quanto ao bissexto,mas o mais importante é isso que acabo de citar.

Como eu disse, se vc utilizar o Calendar() vc não terá problemas com essas datas, com ele vc consegue trabalhar (inclusive validar) datas sem muita dificuldade.

Cara há um biblioteca chamada LTN4Java que ajuda nestes casos.

Eu recentemete fiz algo parecido com o que você quer fazer, usando a biblioteca citada.


public int idadeUser() throws ParseException{
        
        DataCompare dt = new DataCompare();
        
        String datacomparada = new SimpleDateFormat("dd/MM/yyyy").format(getDatanascimento());
        //dt.compareWithTwoDatesString(datacomparada,Datas.dataAtual ,"dd/MM/yyyy" );
        double valor = dt.compareWithTwoDatesString(Datas.dataAtual,datacomparada ,"dd/MM/yyyy" )/365;
        int idade =  (int)Math.floor(valor);
        return idade;
    }

No seu caso poderia colocar o método febuary29th(year);

Espero ter ajudado.