Estou fazendo um programinha em que a pessoa faz um cadastro e coloca a data de nascimento o programa mostra que os dados foram cadastrados e mostra a idade da pessoa pegando a data inserida no formulario e a data do sistema para calculo, não sei se poderia usar date…A verdade é que não tenho a minima ideia de como fazer isso date ou calendar.e como fazer…
por exemplo a pessoa nasceu em 21/03/1970…e tem a data do sistema que posso conseguir pelo java.util.date queria fazer o calculo da idade da pessoa…
É mais complicado do que parece, melhor você utilizar algo pronto do que perder tempo reinventando a roda(a não ser que você queira ).
tgmarinho
importjava.util.Scanner;publicclassExercicio{publicstaticvoidmain(String[]args){Scannerleitor=newScanner(System.in);intmes,ano;System.out.println("Digite o mês e o ano:");mes=leitor.nextInt();ano=leitor.nextInt();switch(mes){case1:case3:case5:case7:case8:case10:case12:System.out.println("O mês possui 31 dias.");break;case2:if((ano%4==0&&ano%100!=0)||(ano%400==0))//Ano BissextoSystem.out.println("O mês possui 29 dias.");elseSystem.out.println("O mês possui 28 dias.");break;case4:case6:case9:case11:System.out.println("O mês possui 30 dias.");break;default:System.out.println("O mês deve estar entre 1 e 12.");}}}
hehe anos bissexto
renanedpedroso
Hellmanss:
Bah, e os anos bissestos?
É mais complicado do que parece, melhor você utilizar algo pronto do que perder tempo reinventando a roda(a não ser que você queira ).
Não sei se você percebeu, mas eu não dei a resposta em anos e outra, não é tão complicado assim como você está falando…
M
motapaz
Boas, pessoal da elite debatendo é legal(rsss) mas ajudem este pobre mortal aqui…como faço isso???´so quero calcular a data do sujeito tendo por base a data do sisetma…não entrando com duas datas…
agradeço a todos
sergiotaborda
motapaz:
Boas a todos,
Estou fazendo um programinha em que a pessoa faz um cadastro e coloca a data de nascimento o programa mostra que os dados foram cadastrados e mostra a idade da pessoa pegando a data inserida no formulario e a data do sistema para calculo, não sei se poderia usar date…A verdade é que não tenho a minima ideia de como fazer isso date ou calendar.e como fazer…
por exemplo a pessoa nasceu em 21/03/1970…e tem a data do sistema que posso conseguir pelo java.util.date queria fazer o calculo da idade da pessoa…
Para fazer contas com datas tem que usar Calendar.
Dê uma olhada neste artigo sobre como trabalhar com datas
Veja o método daysBetween
converta para yearBewteen, em vez de calendar.add(Calendar.DATE, 1); faça calendar.add(Calendar.YEAR, 1);
Tenha atenção que isso calcula os anos da pessoa que ela irá fazer naquele ano. Se a data ainda não chegou a pessoa tem um ano menos.
M
motapaz
obrigado Sergio, creio que me será muito util suas dicas
valmirknasel
Coloca isso na tua classe, se vc quiser saber a idade baseada apenas no ano de nascimento.
A classe java.util.Date está fora de uso. Ao invés, use java.util.Calendar
/***Calculaaidadeapartirdoanodenascimento.*@paramanoDeNascimentoanodenascimentoqueseráutilizadoparacalcular*aidade.*@returnAidadedapessoa.Casoovalorinformadosejainválido,retorna*umaflagcomovalor"-1".*/privatefinalIntegercalcularIdade(IntegeranoDeNascimento){//armazena o ano atual no formato AAAA, ano com quatro dígitos.IntegeranoCorrente=Calendar.getInstance().get(Calendar.YEAR);//se o ano de nascimento não for maior que o ano atual ou menor que 1900...if(!((anoDeNascimento>anoCorrente)|anoDeNascimento<1900)){//armazena o ano de nascimento na classe, para posterior cálculo.this.anoDeNascimento=anoDeNascimento;//Integeridade=anoCorrente-anoDeNascimento;returnidade;}else{return-1;}}
walacy
Peguei sua dúvida e fiz essa classe abaixo…
Espero que seja útil e que não tenha feito nenhuma besteira… hehehehe
Aquela exceção que o método lança é só pra fazer a vida de programador mais feliz… não reparem… hehehehe
Abraço!
importjava.util.Calendar;importjava.util.Date;publicclassTesteDatas{publicstaticvoidmain(String[]args)throwsException{Calendarcalendar=Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH,24);calendar.set(Calendar.MONTH,2);calendar.set(Calendar.YEAR,1988);System.out.println(calculaDataNascimento(calendar.getTime()));System.out.println(calculaDataNascimento(newDate()));}publicstaticintcalculaDataNascimento(DatedataNascimento)throwsException{CalendarcalHoje=Calendar.getInstance();CalendarcalNascimento=Calendar.getInstance();calNascimento.setTime(dataNascimento);if(calNascimento.after(calHoje)){thrownewException("Você veio do futuro?");}else{intanoNascimento=calNascimento.get(Calendar.YEAR);intanoAtual=calHoje.get(Calendar.YEAR);calNascimento.set(Calendar.YEAR,anoAtual);// Já fez aniversário?if(calNascimento.getTimeInMillis()>=calHoje.getTimeInMillis()){returnanoAtual-anoNascimento;}else{returnanoAtual-anoNascimento-1;}}}}