Bom to Precisando fazer um calculo aki pra retornar a idade da pessoa, a partir da data q ela passar…
mas ta complicado…
eu fui juntando umas coisas da net, mas n ta dando mto certo.
try{Stringdata="24/06/1980";DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");df.setLenient(true);//somente cria a data se a formação da mesma for corretaDated=null;d=df.parse(data);CalendardataAtual=Calendar.getInstance();dataAtual.setTime(newDate());CalendardataNascimento=Calendar.getInstance();dataNascimento.setTime(d);intanoNasc=dataNascimento.get(Calendar.YEAR);intanoAtual=dataAtual.get(Calendar.YEAR);intidade=(anoAtual-anoNasc);// Não fez aniversário?if(dataAtual.get(Calendar.MONTH)<dataNascimento.get(Calendar.MONTH))idade=idade-1;System.out.println(idade);}catch(Exceptione){e.printStackTrace();}
pablosaraiva
Christian Borges:
// Não fez aniversário?
if( dataAtual.get( Calendar.MONTH ) < dataNascimento.get( Calendar.MONTH ) )
idade = idade - 1;
importjava.util.*;importjava.text.*;classQuantosAnos{privatestaticDateFormatdfDDMMAAAA=newSimpleDateFormat("dd/MM/yyyy");publicstaticintquantosAnos(Stringdata)throwsParseException{Datedt=dfDDMMAAAA.parse(data);returnquantosAnos(dt);}publicstaticintquantosAnos(java.util.Datedata){Calendarcal=Calendar.getInstance();cal.setTime(data);CalendarcalHoje=Calendar.getInstance();calHoje.set(Calendar.HOUR_OF_DAY,0);calHoje.set(Calendar.MINUTE,0);calHoje.set(Calendar.SECOND,0);calHoje.set(Calendar.MILLISECOND,0);intnAnos=0;while(cal.compareTo(calHoje)<0){cal.add(Calendar.YEAR,+1);nAnos++;}returnnAnos;}publicstaticvoidmain(String[]args)throwsException{System.out.printf("Jose tem %d anos%n",quantosAnos("26/11/1999"));System.out.printf("Jose tem %d anos%n",quantosAnos("27/11/1999"));System.out.printf("Jose tem %d anos%n",quantosAnos("28/11/1999"));Datedt;Calendarcal=Calendar.getInstance();cal.set(Calendar.DAY_OF_MONTH,26);cal.set(Calendar.MONTH,Calendar.NOVEMBER);cal.set(Calendar.YEAR,1999);dt=cal.getTime();System.out.printf("Jose tem %d anos%n",quantosAnos(dt));}}
colored
Muito Obrigado Amigos
Christian_Borges
Corrigido:
Stringdata="30/11/1980";DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");df.setLenient(false);//somente cria a data se a formação da mesma for corretaDated=null;d=df.parse(data);CalendardataAtual=Calendar.getInstance();dataAtual.setTime(newDate());CalendardataNascimento=Calendar.getInstance();dataNascimento.setTime(d);Integeridade=dataAtual.get(Calendar.YEAR)-dataNascimento.get(Calendar.YEAR);// Não fez aniversário?if(dataAtual.get(Calendar.MONTH)<dataNascimento.get(Calendar.MONTH)){idade=idade-1;}elseif((dataAtual.get(Calendar.MONTH)==dataNascimento.get(Calendar.MONTH))&&(dataAtual.get(Calendar.DAY_OF_MONTH)<=dataNascimento.get(Calendar.DAY_OF_MONTH))){idade=idade-1;}System.out.println(idade);