Ola, alguem poderia me ajudar
Estou com o seguinte problema, eu preciso de uma validação que ao digitar uma data inicial e uma data final, mostre a mensagem se esta no periodo de um ano.
Por exemplo:
Se digitar DT_INICIAL= 10/10/2007 e 10/10/2008 tem q mostrar a mensagem q esta no periodo de 1 ano.
cara use o splint para quebrar a data em arrays converta e crie um código que calcule o tempo em dias meses e anos, vou tentar faze um rápido agorinha.
rodrigo.ferreira
Boa tarde!
Faça algo assim:
publicstaticvoidmain(String[]args){// data atual CalendardataAtual=Calendar.getInstance();// data desejada // 31 de julho de 2009 | janeiro = 0 / dezembro = 11 CalendardataDesejada=Calendar.getInstance();dataDesejada.set(2009,6,31);// atribui a data // descobrir quantos dias de diferença entre a data desejada // isso desejavelmente deve ser quebrado num outro método, ou classe....// e a data atual IntegerdifDias=0;while(dataAtual.before(dataDesejada)){// verifica se a data atual é menor que a data desejada // incrementar qtde de dias difDias++;// incrementar um dia da semana da data atual... // poderia ser dia mês, do ano... etc... // para remover valores, basta colocar o operador "-" no segundo parâmetro dataAtual.add(Calendar.DAY_OF_WEEK,1);}if(difDias>365){System.out.println("A diferença é MAIOR que 1 ano");}else{System.out.println("A diferença é MENOR que 1 ano");}}
ta ai minha classe mandei imprimir diversos dados da contrução para seu entendimento ele só mostra a parte que lhe interessa quando a quantidade de dias é menor que a de um ano ela não aparece:
packageTutorials;importjava.util.Calendar;importjava.util.concurrent.ExecutionException;importjavax.swing.JOptionPane;classData{intdia;intmes;intano;booleanDataInvalida(){return(dia>30||mes>12||ano>2009||ano<1800||mes<1||dia<1);}}publicclassVerificacaoDeAno{publicstaticvoidmain(String[]args){Datainicio=newData();Datafim=newData();StringinicialPanel=(JOptionPane.showInputDialog("Insira a data inicial","dd/mm/aaaa"));StringfinalPanel=(JOptionPane.showInputDialog("Insira a data final","dd/mm/aaaa"));try{inicio.dia=Integer.parseInt(inicialPanel.split("/")[0]);inicio.mes=Integer.parseInt(inicialPanel.split("/")[1]);inicio.ano=Integer.parseInt(inicialPanel.split("/")[2]);fim.dia=Integer.parseInt(finalPanel.split("/")[0]);fim.mes=Integer.parseInt(finalPanel.split("/")[1]);fim.ano=Integer.parseInt(finalPanel.split("/")[2]);}catch(Exceptione){System.err.println("Formato de data inválido");}//controle de dataif(inicio.DataInvalida())System.err.println("Data inicial inválida");if(fim.DataInvalida())System.err.println("Data final inválida");if(inicio.ano>fim.ano)System.err.println("A data inicial é menor que a final");if((inicio.DataInvalida()==false)&&(fim.DataInvalida()==false)&&(inicio.ano<fim.ano)){intdiasIN=0,diasFI=0;diasIN+=inicio.dia;diasIN+=inicio.mes*30;diasIN+=inicio.ano*360;diasFI+=fim.dia;diasFI+=fim.mes*30;diasFI+=fim.ano*360;intdiferenca=diasFI-diasIN,anos=0;while(diferenca>=360){anos++;diferenca-=360;}System.out.println("di"+"asIN: "+diasIN+"\tdiasFI: "+diasFI+"\nDiferença: "+(diasFI-diasIN)+"\tAnos: "+anos);}}}