Olá André,
O botão funciona, porém, devemos remover aqueles três pontinhos ( . . . Insira Código ), lá deverá ficar apenas código. Por exemplo, fiz a minha validação e testes, funcionou perfeitamente. Você também deve ter o método principal main().
public class TesteData{
public static void main(String[] args){
Data myDateValida = new Data(30, 1, 2016);
Data myDateInvalida = new Data(31,2,2016);// Deverá aparecer uma mensagem no console, indicando que não existe.
}
}
public class Data {
private int dia;
private int mes;
private int ano;
public Data(int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
if (! isDataViavel(dia, mes, ano)) {
System.out.println("A data " + formata() + " não existe!");
}
}
private boolean isDataViavel(int dia, int mes, int ano) {
if (dia <= 0 || mes <= 0 || mes > 12 || ano <= 0) {
return false;
}
int ultimoDiaDoMes = 31; // por padrao são 31 dias
if (mes == 4 || mes == 6 || mes == 9 || mes == 11 ) {
ultimoDiaDoMes = 30;
} else if (mes == 2) {
ultimoDiaDoMes = 28;
if((ano % 400 == 0) || ((ano % 4 == 0) && (ano % 100 != 0))){
ultimoDiaDoMes = 29;
}
}
if (dia > ultimoDiaDoMes) {
return false;
}
return true;
}
public String formata(){
return dia+"/"+mes+"/"+ano;
}
}