比如说我将当前时间加15分钟,我用这样:
var
 t: TTime;
begin
  t := Now;
  t := t + 0.25;
end;
可是这样得出的时间与预期的时间不对呀,应该怎样计算才对?谢谢!!!

解决方案 »

  1.   

    我想问一下
    var
    a:smallint;
    b:longint;
    ....................
    b:=now;
    ......................
    now>b+a*(1/24/60/60)//这里为什么出错
      

  2.   

    先用DecodeTime分解,然后加上需要的值在用EncodeTime合并就可以了。function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTimeprocedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
      

  3.   

    你只要记住:time在delphi是double 类型就可以了直接相加减,整数部分表示天数,小数部分表示一天中时间至于中间的过程,首先你需要把小数部分转换成秒数,然后在转换成小时a_time :=Timetostr(now)+1.2 ;a_second :=0.2*24*60*60// 转换成秒数呵呵,对不起了,具体的例子我忘记了
    下次来给你发吧,好不?
      

  4.   

    var
     t: TTime;
    begin
      t := Now;
      t := t + 0.25;
    end;你的0.25有问题,因为小数点后表示的是时间,也就是你加上了0.25*24=6(小时)
    所以正确的应该是:
    t := t + 0.25/60;
      

  5.   

    先用DecodeTime分解,然后加上需要的值在用EncodeTime合并就可以了。function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTimeprocedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
    应该可以的