Finalizar programa

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 :wink:

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…