Olá pessoal
Tô com um programinha aqui para verificar a data, coisa simples…
Se a data for fora dos padrões (dia maior que a quantidade de dias do mes em questão, numero do mes que não existe e tals)
Segue o meu método Verificador:
public boolean validaData()
{
int dias_mes[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if( dias_mes[(int)mes - 1] <= dia && mes <= dias_mes.length)
return false;
else
return true;
}
Método q chama a vericação:
public void setDataContratacao(byte dia, byte mes, int ano)
{
dat = new data(dia, mes, ano);
if(dat.validaData())
System.exit(1);
}
Mas quando coloco a data errada ele não sai do programa…
Como eu poderia fazer?
Tava pensando em usar throw, mas não sei usar direito :roll:
Será que alguém pode me ajudar?
Desde já agradeço a atenção de todos 
Na verdade a condição do if é:
if( dias_mes[(int)mes - 1] >= dia && mes <= dias_mes.length)
=)
trabalha com o retorno da tua função. true e false.
public void setDataContratacao(byte dia, byte mes, int ano)
{
dat = new data(dia, mes, ano);
if(dat.validaData()==false){
// metodo..
}else{
System.exit(1);
}
}
Não estou vendo nenhum erro no seu código. Onde vc chama o método que verifica a data?
Não precisa, já estou trabalhando com o retorno, quando ocorrer algum problema com os campos da data o método irá retornar true, assim ele entra dentro do if e sai do programa.
Já consegui arrumar aqui, tava faltando uma arrumadinha msm na condição do if. Eu chamo o método em uma outra classe atraves do objeto da classe data. Segue o codigo funcionando:
Classe data
public boolean validaData()
{
int dias_mes[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if( dias_mes[(int)mes - 1] >= dia && mes <= dias_mes.length) return false;
else return true;
}
Classe empregado:
public void setDataContratacao(byte dia, byte mes, int ano){
dat = new data(dia, mes, ano);
if(dat.validaData())
{
System.out.println("Erro na data!");
System.exit(1);
}
}
Mas não sei, eu acho que ficou meio forçada a saida do programa…
O que vcs acham?
Vlw pessoal \o/
1 curtida
Você tem mesmo que sair do programa? Não poderia apenas apresentar uma mensagem?
Eu tenho q interromper o programa por causa da data errada, mas eu acho que vou fazer uma estrutura de repetição que ficará solicitando ao usuario a entrada de uma data até que ele forneça um dado válido.
Você poderia chamar as validações quando o botão OK fosse pressionado. Se validasse, executaria a ação do botão, senão mostraria uma mensagem e não faria mais nada.
Outra alternativa seria validar quando saísse do campo.
Boa ideia, mas esse trabalhinho é sem interface grafica ¬¬
É tudo pela linha de comando msm, usando o netbeans como IDE…
Vlw…