2009-10-23 80 views
2

我正在構建一個調度系統。目前的系統只是使用excel,並且他們鍵入的時間類似於9:3-5(意思是上午9點至下午5點)。我還沒有設置這些時間將如何存儲的格式,我想我可能不得不使用軍事時間來計算小時數,但如果可能的話,我希望避免這種情況。但基本上我需要能夠弄清楚如何計算小時數。例如9:3-5會是(7.5小時)。我也願意以不同的方式儲存時間。我只需要能夠以簡單的方式顯示它,以便用戶理解並能夠計算它有多少小時。Flex:計算兩次之間的小時數?

任何想法?

謝謝!

回答

3

快速骯髒醜陋的解決方案

public static const millisecondsPerHour:int = 1000 * 60 * 60; 

private function getHoursDifference(minDate:Date, maxDate:Date):uint { 
    return Math.ceil((maxDate.getTime() - minDate.getTime())/millisecondsPerHour); 
} 
+1

不那麼醜陋......儘可能使用盡可能少的代碼完成工作,並且對性能沒有太大影響。 – 2009-10-23 17:10:43

+0

謝謝,我刪除了我的版本中的Math.ceil(),因爲我不想舍入,而是將小時顯示爲小數。 – 2009-10-23 19:28:33

0

好了,它聽起來就像你在談論的,因此目前使用Excel電子表格的人開發的,並希望「電腦化」進程的時間表或計劃改變。第一次警告:「調度不是微不足道的。」如何存儲時間並不是那麼重要,但通常要建立一定的粒度級別並將任務時間轉換爲此間隔的整數倍以簡化調度任務。

如果你想自動化過程或簡單的錯誤檢查,你會想抽象一些東西。一個基本的每週日曆包括開始和停止時間,也許還需要轉變信息。例外日曆從一開始就是一個好主意。例外日曆允許節假日和其他例外情況。將需要包含資源和容量信息的表格。包含所有要調度的任務以及任務之間的任何依賴關係的表將是必需的。你想考慮併發需求嗎? (我需要一輛卡車和一名司機......)你想考慮間歇性的資源調度嗎?你應該支持前進還是後退計劃?你打算支持如果情況? (然後,您需要一個獨立於計劃時間表的主計劃)您是否想要優先考慮如何在計劃中安排任務? (這裏需要大量的工作,具體取決於要完成的工作。)您可能很想確定要實際計劃的任務子集。然後只需提供一個報告機制,以顯示剩餘工作是否可以適應日程表中的空白區域。 (如果你不能在可用時間內完成最苛刻的10%,而關心另外90%的時間)

第二警告:「如果上帝寫了時間表,大多數公司都無法遵循它。