好的,不是一個編程問題,但我似乎只能想到真正複雜的方法來解決這個問題。工作時間完成時間
我們在辦公室裏有一個腳本。我們需要確定此腳本只在工作時間內工作多長時間(工作時間爲上午9點至下午5點)。例如,假設腳本在星期一下午2點開始,並在星期二下午4點結束。該腳本花了26個小時完成,但只完成了10個小時。該腳本可以在一個工作日內完成,但也可以跨越多天。腳本只能在工作日開始和結束。時間戳是用Unix格式完成的。
我不知道這是如何在SQL中完成的,但我知道網絡管理員更喜歡這個。
服務器端腳本語言是PHP。所以這將是第二個可用選項。我嘗試低於:
$workingDay = 24;
$workingDayHours = 8;
$workingTime = 0;
while($timeTaken >= $workingDay) {
$workingTime += $workingDayHours;
$timeTaken -= $workingDay;
}
$workingTime += $timeTaken;
我真的不能認爲正確,現在,太多的工作,所以這種方法雖然是啞巴,似乎在這種情況下工作,因爲$ timeTaken永遠是< = 8 || > = 24.
不管怎麼說,看到一個更好更智能的方法(或許可以在任何小時內工作的方法)都是非常棒的。 SQL也很棒。在小時... (未測試對不起)
經過的時間
如果腳本在工作日的下午5點之前未完成,會怎樣?它在第二天早上9點暫停並恢復嗎?還是繼續 - 在這種情況下,如果在晚上9點結束會發生什麼? –
週末怎麼樣?星期五下午4點在星期六和星期日運行,星期一,上午9點結束,計爲2小時? – arnep
@ aleks-g呃,我不知道這個系統是如何放在一起的,但顯然時間戳只能在上午9點和下午5點之間。腳本不會在這些時間之外完成。 –