Não entendi porque na resposta esse metodo: if(! dataViavel(dia, mes, ano)) { System.out.println ("Data inexistente " + "(" + formatarData() + ")"); }
esta dentro de public Data(...) Não seria melhor como escrevi abaixo. Porém o código abaixo não esta rodando, o que esta errado? Obrigado!
class Data{
int dia;
int mes;
int ano;
public Data(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public void mostrarData(){
if(! dataViavel(dia, mes, ano)) {
System.out.println ("Data inexistente " + "(" + formatarData() + ")");
} else {
System.out.println (formatarData());
}
public boolean dataViavel (int dia, int mes, int ano) {
if (dia <= 0 || mes <= 0 || ano <= 0 || mes > 12){
return false;
}
int ultimoDia = 31;
if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
ultimoDia = 30;
} else if (mes == 2){
ultimoDia = 28;
if ((ano % 400 == 0) || ((ano % 4 == 0) && (ano % 100 != 0))) {
ultimoDia = 29;
}
}
if (dia > ultimoDia){
return false;
}
return true;
}
public String formatarData(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class Programa{
public static void main (String[] args){
Data data = new Data (17, 2, 2017);
}
}