我正在建立一个调度系统。目前的系统只使用excel,他们输入时间为9:3-5(意思是上午9:30至下午5点)。我还没有设置如何存储这些时间的格式,我想我可能需要使用军事时间来计算小时数,但我想尽可能避免这种情况。但基本上我需要能够弄清楚如何计算小时数。例如9:3-5将是(7.5小时)。我也愿意采用不同的方式存储时间。我只需要能够以简单的方式显示它,以便用户理解并能够计算它的小时数。
有什么想法吗?
谢谢!
答案 0 :(得分: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 :(得分:0)
好吧,听起来你正在谈论改变目前由使用excel电子表格的人开发的计划或计划,并希望“计算机化”该过程。第一次警告:“调度不是一件容易的事。”如何存储时间并不是那么重要,但通常建立一定程度的粒度并将任务时间转换为此时间间隔的整数倍以简化调度任务。
如果你想自动化这个过程或者只是错误检查,你会想要抽象一些东西。可能需要一个基本的每周日历,包括开始和停止时间,以及可能的班次信息。例外日历从一开始就是一个好主意。例外日历允许假期和其他例外。将需要包含资源和容量信息的表。将需要一个包含要调度的所有任务以及任务之间的任何依赖关系的表。您想考虑并发要求吗? (我需要卡车和司机......)你想考虑间歇性调度资源吗?你应该支持前向或后向调度吗?你打算支持哪些情景? (那么您将需要一个独立于计划时间表的主计划)您是否要优先考虑如何将任务放在计划表上? (这里需要很多,具体取决于要完成的工作。)您可能非常希望确定要实际安排的任务的子集。然后,只需提供一个报告机制,以显示剩余的工作是否适合计划中的空白区域。 (如果你无法在关心其他90%的时间内完成最苛刻的10%)
第二次警告:“如果上帝写了时间表,大多数公司都无法遵循它。”