Preciso de um script para fazer validação de hora, tipow 15:30:20 ( HH:MM:SS ), para evitar q o usuário entre com qualquer valor e tbm evitar q entre com um valor do tipow 28:75:98…
Estou viajando nas funções, regular expressions…
exemplinho qq coisa soh mudar a classe de validação pra te retornar oq vc precisa e/ ou integrar com a validação
importjava.util.*;importjavax.swing.*;classcHora{privateStringin;privateStringTokenizerst;privateinthr,min,sec;privateStringerro;publiccHora(){// inicializando os atributosin=erro="";hr=min=sec=0;}// método para validar a hora, recebe a string da hora que foi digitadapublicvoidverifica(Stringhora){Stringtmp="";// contador para saber qual parte da string estaintcount=1;// definindo a divisão da string em partes delimitadas pelo caractere ':'st=newStringTokenizer(hora,":");// passando para valores numéricoswhile(st.hasMoreTokens()){tmp=st.nextToken();switch(count){case1:// horahr=Integer.parseInt(tmp);break;case2:// minutosmin=Integer.parseInt(tmp);break;case3:// segundossec=Integer.parseInt(tmp);break;}count++;}// chamando método de calidação valida();}// método para validação de cada parte da hora informadaprivatevoidvalida(){erro="";// verificando a horaif(hr>=24){erro+=" | Hora Invalida : "+hr+" |";}if(min>=60){erro+=" | Minutos Invalido : "+min+" |";}if(sec>=60){erro+=" | Segundos Invalido : "+sec+" |";}// verificando se foi detectado algum erroif(erro.length()!=0){JOptionPane.showMessageDialog(null,"A hora digita da é invalida : "+hr+":"+min+":"+sec+"\n\n"+erro,"Hora incorreta",JOptionPane.ERROR_MESSAGE);// caso a hora digitada seja valida }else{JOptionPane.showMessageDialog(null,"A hora digita da é válida : "+hr+":"+min+":"+sec,"Hora correta",JOptionPane.INFORMATION_MESSAGE);}}}publicclasstesteHora{privateStringhora;privatecHoraconfere=newcHora();/** Creates a new instance of testeHora */publictesteHora(){hora="";hora=JOptionPane.showInputDialog(null,"Informe um horario no formato-> ??:??:??","Digite a hora",JOptionPane.PLAIN_MESSAGE);confere.verifica(hora);// finaliza o programinhaSystem.exit(0);}publicstaticvoidmain(String[]args){newtesteHora();}}
[]'s
Erko Bridee
S
spierPJ
Não entendi bem o que o Walter, vulgo faroestecaboclo, quer dizer com script. Javascript?
Se não for, nada mais prático do que deixar para java.text.SimpleDateFormat:
importjava.text.*;publicclassfoo{publicstaticbooleanvaliDate(Stringstr,Stringformato){DateFormatdf=newSimpleDateFormat(formato);try{df.setLenient(false);java.util.Dated=df.parse(str);}catch(ParseExceptione){returnfalse;}returntrue;}publicstaticvoidmain(Stringargs[]){Stringstr="15:30:20";if(valiDate(str,"HH:mm:ss")){System.out.println("Parabens,\nAcertamos o formato da hora");}else{System.out.println("temos um problema com "+str);}}}
a Praticidade fica por conta de um método que poderá ser usado para validar diversos formatos, com 12-24 horas, datas ddmmaa, aammdd, etc.