猿问

求一算法或思路

现有数据库一表

分配时间                           实际工时     完成时间
2009-12-15 09:00:00     2            2009-12-15 16:00:00

现在要利用 分配时间 和 实际工时 算出 任务是否提前完成 即 是否小于完成时间
有张表记录节假日情况

日期        描述     是否休假
2010-01-01  元旦     是

另外公司是8:00 --- 17:00  上班 午休12:00-13:00  周六日休息

也就是说 如果下午5点分配的工作,实际工时3小时, 如果是正常工作日 完成时间在第二天11点前,
都算提前完成工作


函数式编程
浏览 352回答 2
2回答

www说

个人想法:在录入任务的时候就把最晚完成时间也存放到一个字段中,这样只要对比实际完成时间和最晚完成时间就行了,至于最晚完成时间怎么算就不在这个思路的范畴之内了(因为这个实现起来相对简单)。

摇曳的蔷薇

首先1楼的思路是正确的,只是应该添加“实际完成时间”这个字段,按楼主说的数据例子,“最晚完成时间”就是楼主的表里已有的“完成时间”这个字段。其次,如果不改动字段,就是根据表1计算出每项工作的分配时间和完成时间之间可以工作的时间的长度,再把这个长度和实际工时比较即可。计算工作时间长度的算法是:比较分配时间和完成时间,如果是同一天或相邻天,那么按作息时间直接计算,反之判断相隔的那几天是否是假期或双休,然后计算。
随时随地看视频慕课网APP
我要回答