Olá, fiz o exercício, porém, não consigo mostrar a mensagem "Data não é Válida" na tela, como consigo chamar a mensagem no método mostra()?
eu estava pensando em inserir um if no mostra(), por exemplo:
se Data não é válida, mostra mensagem que não é válida, se não, mostra a mensagem Date Entrada no Banco:....
eu até conseguir inserir o if, mas ele mostra as duas mensagens, então eu retirei.
obs.: do jeito que está não mostra a mensagem de erro.
Seguem meus códigos:
class Funcionario{
private String nome;
String departamento;
private double salario;
Data dataEntradaBanco;
int rg;
public Funcionario(){
}
public Funcionario(String nome){
this.nome = nome;
}
public void recebeAumento(double aumento){
this.salario += aumento;
}
public double calculaGanhoAnual(){
return this.salario * 12;
}
public void mostra(){
System.out.println("Nome do Funcionario: " + this.nome);
System.out.println("Salario Atual: " + this.salario);
System.out.println("Ganho anual: " + this.calculaGanhoAnual());
System.out.println("Data de Entrada no Banco: " +this.dataEntradaBanco.getDataFormatada());
System.out.println("#########################");
}
public void setNome(String setNome){
this.nome = setNome;
}
public String getNome(){
return this.nome;
}
public void setSalario(double setSalario){
this.salario = setSalario;
}
public double getSalario(){
return this.salario;
}
}
class Data{
int dia;
int mes;
int ano;
public Data(int dia, int mes, int ano){
if (!validaData(dia, mes, ano)) {
System.out.println("A data " + getDataFormatada() + " nao e valida!");
} else{
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
}
private boolean validaData(int dia, int mes, int ano){
if (dia <= 0 || mes <=0 || mes > 12 || ano < 1900) {
return false;
}
int ultimoDiaDoMes = 31;
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;
}
String getDataFormatada(){
return dia + "/" + mes + "/" + ano;
}
}
class Empresa{
private String nome;
private int cnpj;
private Funcionario[] funcionarios;
int livre = 0;
void adicionar(Funcionario f){
this.funcionarios[this.livre] = f;
this.livre++;
}
public Empresa(int tamanho){
this.funcionarios = new Funcionario[tamanho];
}
public void setFuncionario(Funcionario[] funcionarios){
this.funcionarios = funcionarios;
}
public Funcionario getFuncionario(int posicao){
return this.funcionarios[posicao];
}
boolean contem(Funcionario f){
for (int i = 0 ; i < this.livre ; i++ ) {
Funcionario funcionarios = this.funcionarios[i];
if (f == funcionarios) {
return true;
}
}
return false;
}
void mostraFuncionarios(){
for (int i = 0;i<this.funcionarios.length;i++) {
Funcionario funcionarios = this.funcionarios[i];
System.out.println("Funcionario na posicao: " + i);
if (funcionarios != null) {
System.out.println("Nome: " + funcionarios.getNome());
System.out.println("R$ " + funcionarios.getSalario());
} else{
System.out.println("Nome: Sem Cadastro!!");
}
}
}
void mostraTodasInformacoes(){
for (int i = 0;i < this.livre ;i++ ) {
System.out.println("Funcionario na posicao: "+ i);
this.funcionarios[i].mostra();
System.out.println("this.livre: " + this.livre);
}
}
}
class TesteEmpresa{
public static void main(String[] args) {
Empresa empresa = new Empresa(10);
Funcionario func1 = new Funcionario("Claudio");
func1.setSalario(3000);
func1.dataEntradaBanco = new Data(10,7,1016);
empresa.adicionar(func1);
Funcionario func2 = new Funcionario("Yann");
func2.setSalario(3600);
func2.dataEntradaBanco = new Data(15,7,1016);
empresa.adicionar(func2);
Funcionario func3 = new Funcionario("Ranih");
func3.setSalario(4600);
func3.dataEntradaBanco = new Data(20,8,2016);
empresa.adicionar(func3);
empresa.mostraTodasInformacoes();
}
}
class TesteFuncionario{
public static void main(String[] args) {
Funcionario func1 = new Funcionario();
func1.setNome("Claudio");
func1.departamento = "TI";
func1.rg = 511111111;
func1.dataEntradaBanco = new Data(20,8,2016);
func1.setSalario(5000);
func1.recebeAumento(100);
func1.mostra();
Funcionario func2 = new Funcionario();
func2.setNome("Yann");
func2.departamento = "RH";
func2.rg = 788811111;
func2.dataEntradaBanco = new Data(30, 7, 2009);
func2.setSalario(7000);
func2.recebeAumento(300);
func2.mostra();
if(func1 == func2){
System.out.println("Iguais");
} else {
System.out.println("Diferentes");
}
}
}