如下 
   7:30,11:50,16:30,16:45,20:00,  ...先把时间数按时间顺序排列如上。判断时间数的个数,如果 为双数  执行 { 把相邻邻时间之差小于15分钟的数剔除,然后再判断 剩下的时间数的个数是否是双数}  如果还是双数,
                                         =2 计算 值= (第2个-第1个)
                                         =4 计算 值= (2-1)+(4-3)                                         =6 计算 值= (2-1)+(4-3)+(6-5)
                                          .
                                          .
                                          .
                                         =N  
关键的是时间数的,个数不等,可能是4个5个6个。

解决方案 »

  1.   

    //先关注一下!lz还没有说要是单数的时候怎么办呢?不做处理了?
    // n = 时间数个数
    var
      T: array of Integer;
      n: Integer;
      sum: Integer;
      i: Integer;
    begin  n := 6;
      SetLength(T, n);  T[0] := 10;
      T[1] := 16;
      T[2] := 22;
      T[3] := 28;
      T[4] := 34;
      T[5] := 40;  sum := 0;  while (n > 0) do
      begin
        sum := sum + (T[n-1] - T[n-2]);
        n := n -2;
      end;
      ShowMessage(IntToStr(sum));
    end;
    // 不知道我理解的对不对?
      

  2.   

    IBetter
       补充
       “ =2 计算 值= (第2个-第1个)”
       最后计算出的值是个时间化成格式 如(11 :50-8:00)计算的结果是 3小时50分钟。补充  整个程序运算出的结果
          举例
          时间  7:30,11:45,11:50,16:30,16:45,20:00 
          第一次判断  以上时间个数是双数,继续第二步 相邻时间之差小於或等于15的 剔除 
          得到  剩下的时间 7:30 ,20:00
          第三 步 判断 时间剩下的个数是双数,计算 结果值=2-1,20:00- 7:30  11小时30分