Функция вычисления времени. Javascript

Уважаемые форумчане, прошу помощи. Необходимо написать Функцию для подсчета необходимого времени для преодоления переданного расстояния со средней скоростью (передаются через prompt). Учтите, что через каждые 4 часа дороги водителю необходимо делать перерыв на 1 час - именно эта часть - проблема Буду бесконечно признательна, если потратите время на объяснение решения. Заранее спасибо всем за помощь.

function countTime() {
  let dist = +prompt('Введите расстояние (число)');
  let avSpeed = +prompt('Введите среднюю скорость, с которой планируете двигаться (число)');
  let time = dist / avSpeed;
  let relax = 0;

  if (dist <= 300 && avSpeed <= 100 // или, как вариант, time <= 4) {
    document.write(`На преодоление расстояния ${dist} километров со скоростью ${avSpeed} км/ч вам потребуется ${time} ч. Отдых не требуется`);
  }else{
    if (time % 5 = 0){
      relax++
    }
  }

}

Ответы (1 шт):

Автор решения: Aziz Umarov

Давайте разбирать.

let distance = prompt("Введите расстояние");
let speed = prompt("Введите среднюю скорость");

let timeInWay = distance/speed;

let timeInRest = (timeInWay%4 == 0)? (timeInWay/4 | 0) - 1: timeInWay/4| 0;

let timeTotal = distance/speed + timeInRest;

alert(`Общее время в пути Время в пути = ${timeTotal} часов`);

Как я понял проблема в вычислении времени на отдыхе, так ка время в пути не составляет проблем.

я так понимаю

каждые 4 часа дороги водителю необходимо делать перерыв на 1 час - это касается только если по истечении 4 часов нужно продолжать движение иначе этот час не добавляется.

Пример 1.

Расстояние - 15 км
Скорость - 4 км/ч
Время в пути - 3.75


Пример 2.

Расстояние - 16 км
Скорость - 4 км/ч
Время в пути - 4


Пример 3.

Расстояние - 17 км
Скорость - 4 км/ч
Время в пути - 5.25 - поскольку после часового привала 
                      водитель должен ещё проехать один километр 
                      4 часа + 1 час отдых + 0.25 час итого 5.25

всё вычисляется по формуле

let timeInRest = (timeInWay%4) ==  0? (timeInWay/4 | 0) - 1: timeInWay/4| 0;

Если время в пути кратно 4, топоследний привал делать нет необходимости, т.е это (timeInWay/4 | 0) - 1.

→ Ссылка