Como armazenar a Data de Nascimento de forma correta?

3 respostas Resolvido
javadata
djdalg

Pessoal, estou quebrando a cabeça um pouco pra armazenar datas. Já perguntei isso pra inúmeras pessoas e todo mundo me diz:

import java.util.Calendar;

public class Data_Calendar {    
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        System.out.println("Data e Hora atual: "+c.getTime());
    }
}

Mas o que eu quero não é a DATA ATUAL, eu quero perguntar e armazenar a data de nascimento do usuário… Saca? Meu professor comentou que eu teria de armazenar em variaveis (dia, mes, ano) e depois dar um set, tipo

Calendar c = Calendar.getIntance();

e depois

c.set(ano,mes,dia);

Mas ai entra minha questão… Como é que vou armazenar ano, mes e dia em variaveis diferentes sem fazer o usuario ter que digitar 3 vezes? Pq por essa linha de raciocinio vou ter que perguntar:

“qual seu dia de nascimento?” leia(anoNascimento)
“qual mes?” leia(mesNascimento)
“qual ano?” leia(anoNascimento)

E o ideal seria perguntar de uma vez “Que ano nasceu?” e o cara responder “17/09/1990” por exemplo, e armazenar numa variável e SÓ, simples… Só isso que eu quero, o mais normal possível, to de cara de não ter encontrado nada referente a isso na net, só encontro como mostrar a data atual… Será que ninguém armazena aniversário em Java? kkk

Enfim, se alguém puder me dar uma luz quanto a isso vou ficar muito grato!

3 Respostas

RaulCrash

Cara esse projeto escolar tá com quais framework? é Web, Swing? Se for Web, é em que ? JSP, JSF ?

djdalg

Amigo, não cheguei nessa parte ainda na verdade, mas vai ser Swing. Eu preciso estudar isso e implementar um framework pra armazenar uma data?

RaulCrash
Solucao aceita

@djdalg de inicio vc quer determinar uma data pro seu calendar.

public static void main(String[] args) {
        int ano = 1990;
        int mes = 04;
        int dia = 02;
        
        Calendar dtNasc = Calendar.getInstance();
        
        dtNasc.set(Calendar.DAY_OF_MONTH, dia);
        dtNasc.set(Calendar.MONTH, mes);
        dtNasc.set(Calendar.YEAR, ano);
        
//        ou set assim:
//        dtNasc.set(ano, mes, dia);
            
        
        System.out.println("Data Nascimento:"+dtNasc.get(Calendar.DAY_OF_MONTH)+"/"+dtNasc.get(Calendar.MONTH)+"/"+dtNasc.get(Calendar.YEAR));
        
    }

Quando for usar pra salvar no banco(que creio que será via PrepareStatement):

preparedStatement.setTimestamp(2, new Timestamp(dtNasc.getTimeInMillis()));
//o parametro 2 corresponde ao indice do campo na sintaxe sql passada pro preparestatement, pesquisa 'INSERT com preparestatement que veras
Criado 17 de novembro de 2016
Ultima resposta 17 de nov. de 2016
Respostas 3
Participantes 2