2014-12-06 65 views
0

不確定是否有不同的詞是正確的。如何計算一段時間內的不同分鐘

這是一個編制的場景來解釋我想得到什麼。

假設有兩個美髮沙龍。

沙龍A有2名員工。 沙龍B有1名僱員。

假設我想計算給定小時內沙龍活動的分鐘數。

如果沙龍A具有以下做頭髮:

  • 客戶A:開始在0分鐘,並在10分鐘(10分鐘剪頭髮)
  • 客戶B結束:開始2分鐘,結束時爲12分鐘(10分鐘剪頭髮)

美髮B具有以下做頭髮:

  • 客戶C:開始爲0分鐘,在10分鐘(10分鐘剪頭髮)
  • 客戶d結束:在10分鐘時開始,並在20分鐘(10分鐘剪頭髮)

結束在這種情況下我想看:

  • 沙龍 - 活動的12分鐘
  • 沙龍乙 - 活動20分鐘

我會再能說,如果客戶Ë去了沙龍A,他們會排隊等候大約6分鐘,以排隊等候他們,但是如果他們去了沙龍B,他們將等待大約10分鐘的時間爲每個客戶提前打發。 (活動除以完成的客戶)。我需要一種方法來計算,而不依賴於沙龍的員工人數。

我能想到的一種方法是創建一個數組並填入唯一的分鐘。例如 對預訂感到厭惡,並將每分鐘添加到數組中,隨後的預訂只會寫入已經填充的現有分鐘數,然後我將爲12個項目(分鐘)的沙龍A和20個項目(分鐘數組) )沙龍乙我相信這會工作,但想知道是否有一個更好/更實際的方式做到這一點?

我不介意只想查看邏輯的語言。

+0

我寫了一組類來處理類似的情況。它可能有幫助。 https://github.com/vascowhite/Time – vascowhite 2014-12-06 05:54:58

+0

你的計算是不正確的。對於A,平均爲5分鐘,因爲每10分鐘,2個客戶將完成預約。 12分鐘的例子會誤導你。 – Leo 2014-12-06 06:20:22

+0

@LeoDeng:OP不是在談論平均水平,而是在談論沙龍的工作時間。 SalonA有12分鐘的活動。 – 2014-12-06 06:22:04

回答

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)。

而我們有一個arry 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 
  • 你猜對了!

  • 編輯:這只是一個孤立子,我肯定還有其他的,它可以執行比這更好:)

    +0

    @克雷格只是想知道,這是否回答你的問題? – Leo 2014-12-14 09:15:42