Ir ao conteúdo
  • Cadastre-se

Homem Aranha

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Prezado Adriano, Agradeço a colaboração. Ajudou bastante. Obrigado.
  2. Criei o código e classes abaixo, mas quando concluo a execução, retorna apenas o valor da "salário", não retorna este acrescido do "valor do contrato". Já verifiquei várias vezes e não consigo identificar o que esta ocorrendo. Ex.: se a remuneração for R$ 10.000,00 e eu cadastrar um contrato com o valor de 10 horas e R$ 10,00 a hora com data de 01/01/2022. Depois, se eu selecionar o mês para pesquisar a remuneração (que seria salário + valor do contrato) como sendo 01/2022, deveria ser somado mais R$ 100,000 ao salário, retornando ao final R$ 1.100,00, mas retorna apenas R$ 10.000,00. Em suma, não soma ao salário o valor do contrato daquele mês. Estou utilizando a nova API de data do Java. Não sei se o erro esta na forma de utilizar a mesma. Não consegui identificar. Agradeço muito se alguém puder me auxiliar a desvendar o que esta ocorrendo. As classes são as abaixo: MAIN package Main; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Locale; import java.util.Scanner; import Enum.NiveisEnumerado; import Entities.Empregado; import Entities.Departamento; import Entities.ContratoHora; public class Aplicatioon { public static void main(String[] args) { Locale.setDefault(Locale.US); Scanner sc = new Scanner(System.in); System.out.println("Informe o Departamento: "); String departamento = sc.next(); sc.nextLine(); System.out.println("Informe o nome do empregado: "); String nomeempregado = sc.nextLine(); System.out.println("Informe o nível do empregado: "); String nivel = sc.next(); System.out.println("Informe o salário: "); Double salario = sc.nextDouble(); Empregado empregado = new Empregado(nomeempregado, salario, NiveisEnumerado.valueOf(nivel), new Departamento(departamento)); System.out.println("Informe quantos contratos serão cadastrados: "); int cadastrados = sc.nextInt(); for(int i=1; i<=cadastrados; i++) { System.out.println("Informe a data do "+ i + "º contrato: "); String data = sc.next(); DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy"); //converteu string em data LocalDate data1 = LocalDate.parse(data, format); System.out.println("Quantidade de horas: "); Integer horascontrato = sc.nextInt(); System.out.println("Valor por hora: "); Double valorhoracontrato = sc.nextDouble(); ContratoHora contratohora = new ContratoHora(data1, horascontrato, valorhoracontrato); empregado.addcontrato(contratohora); } System.out.println("Informe o mês e ano a pesquisar: "); String mesano = sc.next(); Integer mes = Integer.parseInt(mesano.substring(0,2)); Integer ano = Integer.parseInt(mesano.substring(3)); System.out.println("Dados do funcionário e remuneração total no mês informado: "); System.out.println("Nome: " + empregado.getNome()); System.out.println("Departamento: " + empregado.getDepartamento().getNome()); System.out.println("Remuneração: " + String.format("%.2f", empregado.remuneracao(mes, ano))); sc.close(); } } CONTRATOHORA package Entities; import java.time.LocalDate; public class ContratoHora { private LocalDate data1; private Integer horascontrato; private Double valorhoracontrato; public ContratoHora() { } public ContratoHora(LocalDate data1, Integer horascontrato, Double valorhoracontrato) { this.data1 = data1; this.horascontrato = horascontrato; this.valorhoracontrato = valorhoracontrato; } public LocalDate getData1() { return data1; } public void setData1(LocalDate data1) { this.data1 = data1; } public Double getValorhoracontrato() { return valorhoracontrato; } public void setValorhoracontrato(Double valorhoracontrato) { this.valorhoracontrato = valorhoracontrato; } public Integer getHorascontrato() { return horascontrato; } public void setHorascontrato(Integer horascontrato) { this.horascontrato = horascontrato; } public Double valordocontrato() { return valorhoracontrato*horascontrato; } } DEPARTAMENTO package Entities; public class Departamento { private String nome; public Departamento() { } public Departamento(String nome) { this.nome = nome; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } } EMPREGADO package Entities; import java.util.ArrayList; import java.util.List; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import Enum.NiveisEnumerado; public class Empregado { private String nome; private Double salario; private NiveisEnumerado nivel; private Departamento departamento; private List<ContratoHora> contratos = new ArrayList<>(); public Empregado() { } public Empregado(String nome, Double salario, NiveisEnumerado nivel, Departamento departamento) { this.nome = nome; this.salario = salario; this.nivel = nivel; this.departamento = departamento; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Double getSalario() { return salario; } public void setSalario(Double salario) { this.salario = salario; } public NiveisEnumerado getNivel() { return nivel; } public void setNivel(NiveisEnumerado nivel) { this.nivel = nivel; } public Departamento getDepartamento() { return departamento; } public void setDepartamento(Departamento departamento) { this.departamento = departamento; } public List<ContratoHora> getContratos() { return contratos; } public void addcontrato(ContratoHora contratohora) { contratos.add(contratohora); } public void removecontrato(ContratoHora contratohora) { contratos.remove(contratohora); } public Double remuneracao(Integer mes, Integer ano) { double sum = salario; for(int i = 0; i<contratos.size(); i++) { DateTimeFormatter formatada = DateTimeFormatter.ISO_DATE; LocalDate data = contratos.get(i).getData1(); String datast = formatada.format(data); //transformou data da lista em string Integer c_mes = Integer.parseInt(datast.substring(4, 6)); //converteu string em inteiro Integer c_ano = Integer.parseInt(datast.substring(7)); //converteu string em inteiro if(mes == c_mes && ano == c_ano) { sum = sum + contratos.get(i).valordocontrato(); //chamou o valor do método para calcular o valor total do contrato } } return sum; } } NIVEISENUMERADO package Enum; public enum NiveisEnumerado { INICIAL, INTERMEDIARIO, SENIOR; }
  3. Quando clico em Adicionar Plataforma, aparece a tela abaixo: Selecionando a opção "Java Standard Edition" (uma explicação da internet orienta deste forma) e clicando em próximo, aparece a tela seguinte: Selecionando a pasta "jdk-17.0.1" (expandi as demais, pois talvez seja útil), e clicando em próximo, aparece a mensagem de que a plataforma já esta sendo utilizada: Adicionalmente, informo que, quando tento criar o projeto, somente esta disponível a opção Default para escolher. Quando abro a aba (área contornada a lápis), não têm a opção não Default.
  4. Versões: Netbeans: 12.5 JavaFX Scene Builder: 2.0 JDK: 17.0.1 Prezado(as), Estou tentando criar um projeto no Netbeans (categoria: JavaFX - Projeto: Aplicação FXML do JavaFX). Após, aparece a seguinte mensagem com explicação de erro: Pelo que compreendi, deve ser utilizada uma plataforma não Default. Quando seleciono a opção Gerenciar Plataformas, aparece a tela seguinte: No lado esquerdo dessa tela, quando seleciono a opção JDK17 (não Default), não muda nada. Também não têm opção para salvar. Enfim, para criar o projeto, segundo instrução do Netbeans, preciso de uma plataforma não Default, mas não consigo criá-la. Já tentei aplicar várias explicações da internet, mas não funcionaram. Como estou iniciando os estudos agora, falta-me a experiência que seria muito útil. Meus estudos travaram já têm duas semanas. Se alguém souber me auxiliar, agradeço.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...