Boa noite pessoal, sou novo por aqui :)
Estou com dificuldade em tocar meu código para que continue funcionando. Não consegui fazer o desafio da data, na verdade não tentei muito, mas entendi o seu funcionamento. Contudo, ao adaptar o código, não consigo fazê-lo funcionar:
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 " + getFormatada() + " não existe!");
}
}
public String getFormatada() {
return this.dia+"/"+this.mes+"/"+this.ano;
}
private boolean isDataViavel(int dia, int mes, int ano) {
if (dia <= 0 || mes <= 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;
}
}
class TestaEmpresa{
public static void main (String[] args){
Empresa empresa = new Empresa();
empresa.funcionarios = new Funcionario[10];
Funcionario f1 = new Funcionario("João");
f1.setDepartamento("Desenvolvimento");
f1.setRg("48.816.109-5");
f1.setSalario(7000);
f1.setAumento(500);
Data d1 = new Data(5,3,2018);
f1.setDataEntrada(d1.getFormatada());
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.setNome("Manoel");
f2.setDepartamento("Desenvolvimento Web");
f2.setRg("49.816.109-5");
f2.setSalario(3000);
f2.setAumento(500);
Data d2 = new Data(5,4,2018);
f2.setDataEntrada(d2.getFormatada());
empresa.adiciona(f2);
empresa.mostraTodasAsInformacoes();
empresa.contem(f1);
empresa.contem(f2);
}
}
Ao rodar o teste, apresenta o seguinte erro:
TestaEmpresa.java:17: error: incompatible types: String cannot be converted to Data f1.setDataEntrada(d1.getFormatada());
Como faço para atribuir a data nesse caso? Precisarei modificar o formato?
Class Funcionario {
/....
private Data dataEntrada;
....
public Data getDataEntrada() {
return this.dataEntrada;
}
public Data setDataEntrada(Data dataEntrada) {
return this.dataEntrada = dataEntrada;
}
....
}
Vlw!