Как рассчитать отдельные минуты за период времени

0

Не уверен, является ли четкое слово правильным.

Вот сценарий, на котором можно объяснить, что я хотел бы получить.

Скажем, есть два Парикмахерских.

В Салоне A работают 2 сотрудника. В салоне B работает 1 сотрудник.

Скажем, я хочу рассчитать, сколько минут активности для салона за данный час.

Если салон А имеет следующие назначения волос:

  • Клиент A: началось через 0 минут и заканчивалось через 10 минут (стрижка на 10 минут)
  • Клиент B: начинался через 2 минуты и заканчивался через 12 минут (стрижка на 10 минут)

И в салоне B есть следующие волосы:

  • Клиент C: начался через 0 минут и заканчивался через 10 минут (стрижка на 10 минут)
  • Клиент D: начинался через 10 минут и заканчивался через 20 минут (10 мин. Стрижка)

В этом сценарии я хочу видеть:

  • Салон А - 12 минут деятельности
  • Салон B - 20 минут деятельности

Тогда я мог бы сказать, что если бы клиент E отправился в Salon A, они ждали около 6 минут для каждого человека, который был впереди них в очереди, чтобы получить стрижку, но если они отправятся в салон B, они будут ждать около 10 минут для каждого клиента перед ними. (Активность разделена на клиентов). Мне нужен способ рассчитать это, не полагаясь на количество сотрудников в салоне.

Один из способов, я могу думать, это иметь массив и заполнить его уникальными минутами. например, разогнать заказы и добавить каждую минуту в массив, последующие заказы будут просто писать поверх существующих минут, которые уже были заполнены, тогда у меня будет массив с 12 элементами (минут) для Салона A и массив из 20 предметов (минуты ) для Salon B. Я считаю, что это сработает, но хотелось бы знать, есть ли более эффективный или более практичный способ сделать это?

Я не против, какой язык просто хотел увидеть логику.

  • 0
    Я написал набор классов, чтобы справиться с подобной ситуацией. Это может помочь. github.com/vascowhite/Time
  • 0
    Ваш расчет не верен. Для A в среднем 5 минут, потому что каждые 10 минут 2 клиента заканчивают свою встречу. Пример 12 минут вводит вас в заблуждение.
Показать ещё 2 комментария
Теги:
datetime
time
date-arithmetic

1 ответ

0

Простая попытка здесь, в JavaScript.

Скажите, 10 минут для каждого клиента, что постоянный. Так что для салона B это супер просто: там всего 1 парикмахер, время активности - 10 * количество клиентов.

Теперь для Салона A, скажем, app - это массив, который хранит отправную точку для каждой встречи. Например:

var app = [0, 2, 10, 13, 20, 32]

Это означает, что есть 6 клиентов (возможно, это так: парикмахер A имеет 0-10, 10-20, 20-30, 32-42, парикмахер B имеет 2-12, 13-23, плохой парикмахер A).

И у нас есть временная timeline. Пусть цикл через app:

var timeline = [];
for(var i = 0; i < app.length; i++) {
    for(var j = app[i]; j < app[i] + 10; j++) {
        timeline[j] = 1;
    }
}

Теперь, timeline явно записанная каждую активную минуту, также содержит отверстия неактивных. 1 для активных, undefined для неактивных.

Затем мы сокращаем timeline, которая будет автоматически undefined:

var activity = timeline.reduce(function(a, b) {
    return a + b;
});
activity; // 40
  1. Ты понял!

Редактировать: это всего лишь одно решение, я уверен, что есть другие, которые могут работать лучше, чем этот :)

  • 0
    @ Крэйг, просто интересно, это отвечает на твой вопрос?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню