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);
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
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).
Herói você, agora tá dando pra trabalhar com a data de nascimento do cidadão, muito obrigado mano!