我有兩個時間控件,第一個控件上顯示的時間為18:00,第二個控件上顯示的時間為19:30
現在我想取兩個時間的差即:19:00-18:00=1.5請問各為我怎麼樣才能取到1.5個小時?

解决方案 »

  1.   


    var
      d1,d2:Tdatetime;
      s: string;
    begin
      d1:=strtodatetime(edit1.Text);
      d2:=strtodatetime(edit2.Text);
      s:=formatdatetime('h"小时"m"分"',d2-d1);  showmessage(s);
    end;
      

  2.   


    var
      vStr1,vStr2:TDateTime;
    begin
      vStr1:=StrToDateTime(MaskEdit1.Text); //09:30
      vStr2:=StrToDateTime(MaskEdit2.Text); //08:00
      ShowMessage(FormatDateTime('hh:nn',vStr1-vStr2));
      

  3.   


    var
      s:string;
      sl:Tstringlist;
    begin
      sl:=Tstringlist.Create;
      sl.Delimiter:=':';
      sl.DelimitedText:='1:30';
      s:=floattostr(strtoint(sl.Strings[0])+strtoint(sl.Strings[1])/60);
      showmessage(s);
      sl.Free;
    end;
      

  4.   

    干脆这样的了,直接得到1.5var
      d1,d2:Tdatetime;
      x: double;
    begin
      d1:=strtodatetime('19:30');
      d2:=strtodatetime('18:00');
      x:=(d1-d2)*24;
      showmessage(floattostr(x));
    end;
      

  5.   


    用DecodeTime(StrToDateTime(),Hour,Min,Sec,MSec)取出来
    然后再FormatFloat('#0.0',(Hour*3600+Min*60+Sec)/3600)
      

  6.   

    uses DateUtils;MinutesBetween(时间1, 时间2) / 60;
      

  7.   

    var
      vStr1,vStr2:TDateTime;
    begin
      vStr1:=StrToDateTime(MaskEdit1.Text); //09:30
      vStr2:=StrToDateTime(MaskEdit2.Text); //08:00
      ShowMessage(FormatDateTime('hh:nn',vStr1-vStr2));