首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个时间段内计算不同的分钟

如何在一个时间段内计算不同的分钟
EN

Stack Overflow用户
提问于 2014-12-06 05:06:39
回答 1查看 118关注 0票数 0

不确定区分是否是正确的词。

这是一个虚构的场景来解释我想要得到的东西。

假设有两家发廊。

A沙龙有2名员工。B沙龙有一名员工。

比如说,我想计算一下,在一个给定的小时内,一个沙龙有多少分钟的活动时间。

如果A沙龙有以下的头发约会:

  • 顾客A:从0分钟开始,10分钟结束(10分钟理发)
  • 顾客乙:2分钟开始,12分钟结束(10分钟理发)

沙龙B有以下的头发约会:

  • 顾客C:从0分钟开始,10分钟结束(10分钟理发)
  • 顾客D: 10分钟开始,20分钟结束(10分钟理发)

在这个场景中,我想看到:

  • 沙龙A- 12分钟活动
  • 沙龙B- 20分钟的活动

这样我便可以说,如果顾客E到A沙龙,他们会等6分钟,排队前的每一个人都会理发,但如果他们去B沙龙,他们就会等10分钟左右,每一位顾客都在他们前面。(按客户划分的活动完成)。我需要一种方法来计算这一点,而不依赖于沙龙的员工人数。

我能想到的一种方法是拥有一个数组,并用独特的分钟填充它。例如,对预订不满意,并将每分钟添加到数组中,随后的预订只会写入已经填充的现有分钟,然后我将有一个数组,其中有12项(分钟)用于沙龙A,20项(分钟)用于沙龙B。我认为这会有效,但想知道是否有更好的/更实用的方法来做到这一点?

我不介意什么语言只是想看逻辑。

EN

回答 1

Stack Overflow用户

发布于 2014-12-06 06:47:51

这是一个简单的尝试,在JavaScript中。

比方说,每一位顾客10分钟,这是一个常数。所以对于沙龙B来说,这非常简单:只有一个理发店,活动时间是10 *顾客数量

现在对于沙龙A来说,假设app是一个数组,它存储每个约会的起点。例如:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
var activity = timeline.reduce(function(a, b) {
    return a + b;
});
activity; // 40
  1. 你成功了!

编辑:这只是一个独处,我相信还有其他的,它们可能比这个更好:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27328497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档