在00:00至06:00之间的时间如何取它6小时前的时间,比如:00:21前6小时是18:21.
01:00前的6小时是19:00.在线急等.谢谢

解决方案 »

  1.   

    用SQL来实现,好像有个datediff()
      

  2.   

    var
      Present: TDateTime;
       Hour, Min, Sec, MSec: Word;begin
    DecodeTime(Present, Hour, Min, Sec, MSec);Present:=encodetime(Hour+6, Min, Sec,MSec);
      

  3.   

    时间或日期的相减    
      var 
    time1,time2,time3:TDatetime;h,m,s:integer;begintime3:=time1-time2;decodetime(time3,h,m,s);result:=h*3600+m*60+s;end; 
     
     
      

  4.   

    var
     Hour, Min, Sec, MSec: Word;
    begin
     DecodeTime(now,Hour, Min, Sec, MSec);
       Hour:=Hour-6+24;
     showmessage(formatdatetime('hh:nn:ss',EncodeTime(Hour, Min, Sec, MSec)));
      

  5.   

    日期时间类型支持直接的计算,因此你可以简单的将六小时转换成时间类型加上就可以了!
    然后你可以转换为字符型进行大小比较:
    Var
      PlanTime:TTime;        // 一个00:00到06:00之间的时间
      NowTime:TTime;         // 当前时间+6小时之后的时间
     
      NowTime:=Time()+StrToTime('6:00:00');
      if FormateDateTime('hh:mm:ss',PlanTime)>FormateDateTime('hh:mm:ss',NowTime)then
      ........{你的代码}