请问各位高手,如何写一个delphi函数,实现以下功能:
有一个定单号,开始时间,完成时间 比如 (定单号 NO0001,开始日期 2011.09.20 8:00,完成日期 2011.09.20 10:00)
有一张表,里面有定单,开始时间,完成时间例如
 NO0002,2011.09.20 8:00,2011.09.20 9:00
 NO0003,2011.09.20 9:00,2011.09.20 10:00
 NO0003,2011.09.21 9:00,2011.09.21 10:00
   .
   .
   .
表中的开始,完成时间都是固定的.
如何能实现将定单插入这张表,如果要排的定单时间区间和表中数据没有交集,则输出定单时间.
如果定单时间和表中数据有交叉,就是定单的时间段内已经排了定单则
往后延,以表中已排的定单的完成日期作为要排的定单的开始日期,以已排定单的开始时间+(要排的定单的完成时间-开始时间)作为要排的定单的完成时间输出.紧急,请教各位高手了.如果不清楚,请联系我...在线等.

解决方案 »

  1.   

     可能我没说明白,就是说,我的排程的时候,很多定单都是已经排好了的,也就是表中的数据,假如,这时,我需要判断一张新来的定单,而且也有初步排的开始时间,结束时间,不过没有考虑已经排了的定单,我就是要把这个定单的数据插入到空闲的时间里去.不能分成几段.我用的是sqlserver,没做过这样的东西.还请教大家了.
    我是想输入开始时间,完成时间,然后就去找一个合适的空闲的时间,然后返回这个实际的空闲时间段。
      

  2.   

    是用的sqlserver.比如,如果表中的每条记录的时间都没包括要排的这张的开始时间和完成时间,就直接插入要排的这个时间.如果已经包括了,比如我要排的是2011-09-20 8:00到2011-09-20 10:00,表里已经有了一张订单,时间是2011-09-20 8:00到2011-09-09 9:00,则我要插入的开始时间要改为在2011-09-09 9:00以后的一个时间,并且这个空闲的时间段要排得下.就是完成时间不能大于里面的记录的开始时间.不知道说得清楚不?如果在表中比较相邻的两条记录,不知道怎么比较.