Construir a classe Horario com os seguintes membros (atributos + métodos):
Atributos: hora, min
Métodos:
getHora():
não recebe valor
retorna o atributo hora
getMin():
não recebe valor
retorna o atributo min
setHora():
recebe o novo valor da hora
retorna true se a hora for válida, false c. c.
setMin():
recebe o novo valor do minuto
retorna true se o min for válido, false c. c.
calcularIntervalo():
recebe um horário h (objeto da classe Horario) como parâmetro
calcula o intervalo de tempo deste Horario até o Horario h
retorna o valor do intervalo em minutos (int)
Construir a classe principal para testar a classe Horario. Esta classe:
pede ao usuário dois horários, de entrada e de saída
cria dois objetos da classe Horario
calcula o intervalo de tempo entre eles
calcula quanto custou:
se intervalo menor do que 3 h → R$ 4,50
se intervalo entre 3 h e 12 h → R$ 0,75 a cada 15 min excedente
se intervalo maior do que 12 h → R$ 33,00
A minha dúvida em si, é quando a questão fala isso aqui ‘’ pede ao usuário dois horários, de entrada e de saída ‘’. E por isso que não conseguir fazer o resto do código
public class Horario {
int hora, min;
Horario(int hora) {
this.hora = hora;
}
void setHora(int hora) {
this.hora = hora;
}
int getHora() {
return hora;
}
public int getMin() {
return min;
}
public void setMin(int min) {
this.min = min;
}
public void calcularIntervalo(int horaEntrada, int horaSaida) {
this.min = (horaSaida - horaEntrada) * 60;
}
public int informaIntervalo() {
return min;
}
}
public class ResultadoHorario {
public static void main(String [] args) {
Horario horaEntrada = new Horario(15);
Horario horaSaida = new Horario(19);
horaEntrada.calcularIntervalo(15, 19);
System.out.println("Horário de entrada: " + horaEntrada.getHora());
System.out.println("Horário de saída: " + horaSaida.getHora());
System.out.println("Intervalo de tempo: " + horaEntrada.informaIntervalo() + " minutos");
}
}
O retorno desse método não pode ser void, tem que ser boolean.
Veja o enunciado:
setHora():
recebe o novo valor da hora
retorna true se a hora for válida, false c. c.
O retorno desse método não pode ser void, tem que ser boolean.
Veja o enunciado:
setMin():
recebe o novo valor do minuto
retorna true se o min for válido, false c. c.
O retorno desse método não pode ser void, tem que ser int.
Ele só tem que ter um parâmetro do tipo Horario e não dois parâmetros do tipo int.
Veja o enunciado:
calcularIntervalo():
recebe um horário h (objeto da classe Horario) como parâmetro
calcula o intervalo de tempo deste Horario até o Horario h
retorna o valor do intervalo em minutos (int)
Esse método não é pra ser criado.
É que você está colocando um horário fixo no fonte e é pra pedir para o usuário digitar.
Horario horaEntrada = new Horario();
horaEntrada.setHora(horaEntradaDigitado);
horaEntrada.setMin(minEntradaDigitado);
Horario horaSaida = new Horario();
horaSaida.setHora(horaSaidaDigitado);
horaSaida.setMin(minSaidaDigitado);
Só o seu cálculo do intervalo está errado pois os seus métodos da classe Horario estão errados.
Quando você ajustar os métodos da classe Horario, seu código vai ficar assim:
Horario horaEntrada = new Horario();
horaEntrada.setHora(horaEntradaDigitado);
horaEntrada.setMin(minEntradaDigitado);
Horario horaSaida = new Horario();
horaSaida.setHora(horaSaidaDigitado);
horaSaida.setMin(minSaidaDigitado);
int intervalo = horaEntrada.calcularIntervalo(horaSaida);
System.out.println("Horário de entrada: " + horaEntrada.getHora() + "h " + horaEntrada.getMin() + "min");
System.out.println("Horário de saída: " + horaSaida.getHora() + "h " + horaSaida.getMin() + "min");
System.out.println("Intervalo de tempo: " + intervalo + "min");