我想实现一个类似酒店的 时间算法 !  规则是  过了中午12点算半天,过了下午18点算一天,   edit1是2011/12/22 16:40    edit2 是获取当前时间比如是 2011/12/25 15:00   请问  怎么求出 中间过了多少天 , 半天 按0.5算!

解决方案 »

  1.   

    TDateTime的值就是天数,将两个Edit分别转为TDateTime
    var
      days:double;
    ....
     days=StrToDate(Edit2.Text)-StrToDate(Edit1.Text);
    这个就是天数,然后按你的要求.小数部分>0.5(12/24) days的小数就取0.5, >0.75(18/24) days+1
    就可以了
      

  2.   

    你就用delphi自带的加上自己的规则处理就可以了,转动脑子吧
      

  3.   

    没有很困难的吧。delphi自带了很多函数,数据库里也有很多处理函数,都可以解决问题的。这个逻辑不复杂
      

  4.   


    同意一楼的观点,帮你补充完整代码吧:const
      HalfDay = 12
      OneDay = 18
    var
      days: double;
    begin
      days := StrToDate(EditNow.Text) - StrToDate(EditSomeDay.Text);
      if days >= (HalfDay/24) then 
        MessageBox(0, '超过半天', '提醒', MB_OK)
      else if days >= (OneDay/24) then
        MessageBox(0, '超过一天', '提醒', MB_OK)
      else
        MessageBox(0, '不到半天', '提醒', MB_OK)
    end;