Como manipular horas utilizando a IDE Netbeans Java 8

4 respostas
juninhoall

Estou tendo algumas duvidas na minha implementação
Segue o código.:

public class ProfessorEfetivo extends Professor {

    private double salario;

    private Date jornadaDeTrabalho;

    public ProfessorEfetivo(String nome, int idMatricula, Date dataNascimento, double salario, Date jornadaDeTrabalho) {
        super(nome, idMatricula, dataNascimento);
        this.salario = salario;
        this.jornadaDeTrabalho = jornadaDeTrabalho;

    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public Date getJornadaDeTrabalho() {
        return jornadaDeTrabalho;
    }

    public void setJornadaDeTrabalho(Date jornadaDeTrabalho) {

        this.jornadaDeTrabalho = jornadaDeTrabalho;
    }

    public void validarJornadaDeTrabalho() {
        //(validar os valores 20 hs, 40 hs ou Dedicação Exclusiva)

    }

    @Override
    public String toString() {
        String valueConvertJornada = new SimpleDateFormat("hora : minuto").format(jornadaDeTrabalho);
        return "\nsalario.: " + salario
                + "\njornadaDeTrabalho.: " + valueConvertJornada;

    }
}
Minhas duvidas são como condicionar o método "validarJornadaDeTrabalho" e também a conversão do mesmo. Gostaria também de agradecer vocês por ajudarem nesse fórum.

4 Respostas

A

O que você pretende armazenar em jornada de
trabalho?

Não entendi porque esse campo e do tipo date.

O que esse método de validação faz?

juninhoall

AbelBueno:
O que você pretende armazenar em jornada de
trabalho?

Não entendi porque esse campo e do tipo date.

O que esse método de validação faz?

em jornada de trabalho quero validar os valores [color=red]20 hs, 40 hs ou Dedicação Exclusiva[/color], aonde dedicação exclusiva seria uma hora que não seja 20 ou 40 comecei a ler um pouco da documentação e vi que o Date tem um parâmetro que armazena horas, correto ? então achei desnecessário usar um valor inteiro para armazenar isso, afinal quero que armazene uma hora, só que não estou conseguindo fazer a conversão e nem a validação do mesmo, você tem alguma dica para mim ? desde já grato

A

juninhoall:

em jornada de trabalho quero validar os valores [color=red]20 hs, 40 hs ou Dedicação Exclusiva[/color], aonde dedicação exclusiva seria uma hora que não seja 20 ou 40

Quando você usar Dedicação Exclusiva, vai querer informar esse número de horas?
Se você não informar poderia transformar isso numa enum:

enum JornadaDeTrabalho { HR20, HR40, DEDICACAO_EXCLUSIVA };

Se quando for dedicação exclusiva, você ainda precisa especificar o número de horas, eu criaria uma classe específica para isso:

class JornadaDeTrabalho {
        JornadaDeTrabalho(int numeroDeHoras) { //}
        public boolean isDedicacaoExclusiva() { //};
    }

Cuidado com esse hábito de querer aproveitar coisas que fazem “quase” o que você precisa.
Seria como usar uma classe Carro só porque você precisa usar métodos da classe Roda.

O tipo Date representa um momento no tempo, o instante que algo aconteceu.
O que você precisa é da quantidade de horas de uma jornada de trabalho. Ou seja, quantidade é apenas um número, então acho que um int seria suficiente.

juninhoall

AbelBueno:
juninhoall:

em jornada de trabalho quero validar os valores [color=red]20 hs, 40 hs ou Dedicação Exclusiva[/color], aonde dedicação exclusiva seria uma hora que não seja 20 ou 40

Quando você usar Dedicação Exclusiva, vai querer informar esse número de horas?
Se você não informar poderia transformar isso numa enum:

enum JornadaDeTrabalho { HR20, HR40, DEDICACAO_EXCLUSIVA };

Se quando for dedicação exclusiva, você ainda precisa especificar o número de horas, eu criaria uma classe específica para isso:

class JornadaDeTrabalho {
        JornadaDeTrabalho(int numeroDeHoras) { //}
        public boolean isDedicacaoExclusiva() { //};
    }

Cuidado com esse hábito de querer aproveitar coisas que fazem “quase” o que você precisa.
Seria como usar uma classe Carro só porque você precisa usar métodos da classe Roda.

O tipo Date representa um momento no tempo, o instante que algo aconteceu.
O que você precisa é da quantidade de horas de uma jornada de trabalho. Ou seja, quantidade é apenas um número, então acho que um int seria suficiente.

Muito obrigado pela resposta, mas eu queria saber se há uma classe que possa manipular horas, com a tipagem item eu tinha feito, agora eu fiz com a Enum, gostei desse método, mais uma vez obrigado.

Criado 10 de maio de 2014
Ultima resposta 13 de mai. de 2014
Respostas 4
Participantes 2