Gostaria de saber se essa solução é a correta para o Desafio.
class Data{
int dia, mes, ano;
public Data(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public void validaData(){
if (this.mes == 1 || this.mes == 3 || this.mes == 5 || this.mes == 7 || this.mes == 8 || this.mes == 10 || this.mes == 12){
if (this.dia > 0 && this.dia <= 31 && this.ano > 0){
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data valida.");
}else{
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data invalida.");
}
}else
if (this.mes == 4 || this.mes == 6 || this.mes == 9 || this.mes == 11){
if (this.dia > 0 && this.dia <= 30 && this.ano > 0){
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data valida.");
}else{
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data invalida.");
}
}else if (this.mes == 2 && this.ano > 0 ){
if ( ( this.ano % 4 == 0 && this.ano % 100 != 0 && this.dia <= 29 && this.dia != 0) ||
( this.ano % 400 == 0 && this.dia <= 29 && this.dia != 0) ){
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data valida. Ano e Bissexto");
}else if (this.dia <= 28 && this.dia != 0){
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data valida. Ano nao e Bissexto ");
}else{
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data invalida.");
}
}else {
System.out.println (this.dia + "/" + this.mes + "/" + this.ano + " E uma data invalida.");
}
}
String getFormatada(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class TestaFuncionario {
public static void main(String[] args) {
Empresa emp1 = new Empresa(10);
emp1.setNomeEmpr ("Casarao das Tintas Ltda.");
emp1.setCnpjEmpr ("09.039.015/0001-38");
Funcionario func1 = new Funcionario();
func1.setNome ("Antonia dos Santos");
func1.setDpto ("Setor de Vendas");
func1.setRg("33.123.456-10");
func1.setSalario(2600);
func1.setAumento(10);
Data dataEntrFunc1 = new Data(31,02,2012);
dataEntrFunc1.validaData();
func1.setDataEntr(dataEntrFunc1.getFormatada());
emp1.adicionar(func1);
Funcionario func2 = new Funcionario();
func2.setNome ("Carlos Alberto");
func2.setDpto ("Setor de Compras");
func2.setRg("22.133.444-20");
func2.setSalario(8600);
func2.setAumento(10);
Data dataEntrFunc2 = new Data(29,02,2016);
dataEntrFunc2.validaData();
func2.setDataEntr (dataEntrFunc2.getFormatada());
emp1.adicionar(func2);
emp1.imprimeEmpresa();
emp1.imprimeTodasAsInformacoes();
boolean existe = emp1.contem(func2);
if (existe) {
System.out.println("Funcionario ja existe");
}else {
System.out.println("Funcionario nao existe");
}
}
}