Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 3 da Aula 6 - Construtores

No meu trecho de código abaixo, está dando erro quando estou tratando os números "08 e 09", dá o seguinte erro: "the literal 09 of type int is out of range".


package exercicioAulaTres;

public class Data {

    int dia;
    int mes;
    int ano;


    public Data ( int dia, int mes, int ano){



        //Formato de Mês

        if (this.mes == 1 || this.mes == 2 || this.mes == 3 || this.mes == 4 || this.mes == 5 || this.mes == 6 || this.mes == 7 || this.mes == 8 || this.mes == 9){
            System.out.println("Formato de Mês Inválido");
        }

        //Meses com 30 dias 
        if ( this.mes == 01 || this.mes == 04 || this.mes == 06 || this.mes == 09 || this.mes == 11 && this.dia <= 30){
            System.out.println("Mês valido");

        }


        //Meses com 31 dias     
        if (this.mes == 03 || this.mes == 05 || this.mes == 07 || this.mes == 08 || this.mes == 10 || this.mes == 12 && this.dia <= 31){
            System.out.println("Mês valido");
        }

        // Mes de fevereiro com 28 ou 29 dia    

        if (this.mes == 02 && this.dia ==30 || this.dia ==31){
            System.out.println("Data Inválida");
        } 



    }



    void preencheData (int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;    

    }

    String  getFormatada( ){

        return this.dia + "/" + this.mes + "/" + this.ano;
    }


}
2 respostas
solução!

Creio que o erro está como vc se re aos int, ora como 4 ora como 04. Tente escrever apenas o número sem o 0 na frente.

Obrigado , Gilson irei realizar a mudança