GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Declarar data de nascimento

Bom eu tenho uma classe pessoa que tem uma variável dataDeNascimento do tipo Calendar, mas a minha dúvida esta sendo declarar o valor de dataDeNascimento ao criar um objeto do tipo pessoa na classe principal

Você tem que ver como sua variavel vai receber a data se vier de uma campo que retorna uma String, por exemplo “24/11/2021” você tem que converter essa String para o tipo Calendar, não sei com faz para converter para o tipo Calendar por que geralmente uso o tipo LocalDate.

Exemplo:

    Calendar data = converterTextoEmData("21/11/2021"); //A implementação deste método deve retornar uma data no tipo Calendar

    Pessoa pessoa = new Pessoa();
    pessoa.setData(data);
1 curtida

Então desse forma eu sei fazer de boa, o problema é que no sistema pede pra que a variável dataDeNascimento da classe pessoa seja Calendar e eu não estou conseguindo instanciar uma data para o objeto :frowning:

Você pode criar um Calendar e em seguida setar os valores do dia, mês e ano:

Calendar cal = Calendar.getInstance();
// 15 de janeiro de 2000
cal.set(2000, Calendar.JANUARY, 15);

Também daria para ser cal.set(2000, 0, 15) ← sim, nesta API janeiro é zero, fevereiro é 1, etc.

Enfim, se você já sabe os valores numéricos que a data terá, esta é a forma mais direta (não precisa criar uma string para depois transformar em data → isso faria sentido se a data fosse digitada pelo usuário por exemplo, mas se você quer colocar um valor fixo, use os números diretamente).


Mas se estiver usando Java >= 8, prefira usar o java.time (não só mais novo e moderno, como também arruma vários problemas de Date e Calendar).

Para uma data de nascimento, por exemplo, daria para usar um java.time.LocalDate:

// 15 de janeiro de 2000
LocalDate dtNasc = LocalDate.of(2000, 1, 15);
System.out.println(dtNasc);

Repare como janeiro é mês 1 (um dos muitos problemas de Calendar que esta API consertou).

1 curtida

Herói você, agora tá dando pra trabalhar com a data de nascimento do cidadão, muito obrigado mano!

//