1
resposta

[Projeto] Exercício: Horário de funcionamento da loja

import { createInterface } from "readline";

const rl = createInterface({
  input: process.stdin,
  output: process.stdout,
});

const horaAtual = new Date().getHours();

function verificaFuncionamento(diaSemana, horaAtual) {
  let nomeDia;
  switch (diaSemana) {
    case 0:
      nomeDia = "Domingo";
      break;
    case 1:
      nomeDia = "Segunda-feira";
      break;
    case 2:
      nomeDia = "Terça-feira";
      break;
    case 3:
      nomeDia = "Quarta-feira";
      break;
    case 4:
      nomeDia = "Quinta-feira";
      break;
    case 5:
      nomeDia = "Sexta-feira";
      break;
    case 6:
      nomeDia = "Sábado";
      break;
    default:
      nomeDia = "Dia Inválido";
  }

  if (diaSemana >= 1 && diaSemana <= 5) {
    console.log(`${nomeDia} nossa loja abre das 9h às 18h.`);
    console.log(
      horaAtual < 9 || horaAtual > 18
        ? "Por isso, ela está fechada no momento."
        : "Então, agora ela está aberta!",
    );
  } else {
    console.log(`${nomeDia} nossa loja abre especialmente das 10h às 14h.`);
    console.log(
      horaAtual < 10 || horaAtual > 14
        ? "Por isso, ela está fechada no momento."
        : "Então, agora ela está aberta!",
    );
  }
};

rl.question("Que dia é hoje?\n> ", (input) => {
  const diaSemana = Number(input);

  if (
    Number.isNaN(diaSemana) ||
    !Number.isInteger(diaSemana) ||
    diaSemana < 0
  ) {
    console.log("O dia deve ser válido e em formato numérico [0-6]");
    rl.close();
    return;
  }

  verificaFuncionamento(diaSemana, horaAtual);

  rl.close();
});
1 resposta

Oi, Vitor! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura. Gostei de como você usou o switch para transformar o número do dia em nome e também separou a lógica na função verificaFuncionamento, isso deixa o código mais organizado e fácil de acompanhar.

Uma dica interessante para o futuro é usar um array para guardar os nomes dos dias, reduzindo o tamanho do código. Veja este exemplo:


const dias = ["Domingo", "Segunda-feira", "Terca-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sabado"];

const nomeDia = dias[diaSemana];

console.log(nomeDia);

Esse código usa o valor de diaSemana como indice do array e retorna o nome do dia correspondente. Continue praticando, você está construindo uma boa base com condicionais e funções.

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Conteúdos relacionados
JavaScript: para que serve um Array?
Manipulação de array com map, filter e reduce