Problemas com data

Pessoal, eu to com problema p/ validar data. Meu sistema tem a opção do usuario digitar sua data de nascimento, o problema é que eu não consigo controlar os meses, com 29, 30, 31 dias, alguem tem alguma sugestao?

Renata,

Você pode usar a classe Calendar.
A idéia é a seguinte: obtenha uma instância da classe calendar e use os métodos set pra colocar a data que você deseja validar. Acredito que se a data não for válida alguma exceção será disparada.

Caso isso não ocorra crie uma instância de Calendar com a data 01 / <mês> / <ano> e em seguida use o método getActualMaximum( Calendar.DAY_OF_MONTH )
Isso retornará o maior dia do mês, 29, 30 ou 31.

Qquer coisa tamo ai…

public void setDataNascimento( String stringData ) throws Exception {
  
      SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
      formatador.setLenient( false );
      this.setDataNascimento( formatador.parse( stringData ) );

}

Se a data for invalida ( ex: 31/02/2007 ) uma exceção vai ser disparada

Legal os comentários, mas vai não vai querer tratar uma exceção? vai? se não for, valide a data antes de tentar converter.

E a exceção resultante - nos casos acima- como trato?
E qual é a melhor opção p/ uma data completa: utilizar calendar, ou date, ou utilizar dia, mes e ano separamente??
O que me dizem? :roll:

public void setDataNascimento( String stringData ) {  
        
        SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");  
        formatador.setLenient( false );  
        try {
        	this.setDataNascimento( formatador.parse( stringData ) );  
        } catch (ParseException e) {
			// aqui é onde você trata, não acho uma boa ideia mas...
        	e.printStackTrace();
		}  
  }

A melhor opção para manipular data é utilizar Calendar.
Essa também é uma boa http://www.linuxdicas.com.br/perguntas.html

ou entao utilizar o nachocalendar que ja valida e padroniza…
http://nachocalendar.sourceforge.net/