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

Dúvida no Ex. 3 Aula 6

Está dando o seguinte erro:

"funcionario.java:22: error: method DataViavel in class Data cannot be applied to given types; if(! DataViavel(dia, mes, ano)){ ^ required: int,int found: int,int,int reason: actual and formal argument lists differ in length"

Código:

class Data {
    int dia;
    int mes;
    int ano;
    int limiteDia = 31;

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


    String getFormatada (){
        return this.dia + "/" + this.mes + "/" + this.ano;
    }

    public Data (int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
        if(! DataViavel(dia, mes, ano)){
            System.out.println("A data é: " + getFormatada());
        }
    }

    boolean DataViavel (int dia,int mes) {
        if(mes == 4 || mes == 6 || mes == 9 || mes == 11){
            limiteDia = 30;
        } else if (mes == 2){
            limiteDia = 28;
        } 
        if(dia > limiteDia){
            return false;
        } else {
            return true;
        }
    }
}
2 respostas
solução!

Olá Lari tudo bem?

Bem temos um probleminha nos parâmetros da função DataViavel(int dia, int mes) pois estamos passando a ela apenas o dia e o mês, porém na nossa função Data() chamamos a função passando dia, mês e o ano

        if(! DataViavel(dia, mes, ano)){
            System.out.println("A data é: " + getFormatada());
        }

por isso temos o erro, para corrigir o código podemos inserir o ano no parâmetro de nossa função DataViavel(int dia, int mes, int ano).

Espero ter ajudado e bons estudos,

Atenciosamente,

Obrigaaaada!!! :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software