好的,不是一个编程问题,但我似乎只能想到真正复杂的方法来解决这个问题。工作时间完成时间
我们在办公室里有一个脚本。我们需要确定此脚本只在工作时间内工作多长时间(工作时间为上午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点之间。脚本不会在这些时间之外完成。 –