如题.谢谢回复!! :-)

解决方案 »

  1.   

    直接相+ -阿。。日期运算有
    INCDAY
    INCYEAR
    INDCMONTH
      

  2.   


    Dim a As Date, b As Datea = "2004-06-12"b = "2004-08-30"b-a=79 直接加减就可以
      

  3.   

    谢谢楼上!问题是这样的....
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      it:Tdate;
      nowt:Tdate;
      SearchName: string;       //查找name字段
      SearchRoom: string;       //查找roomnum字段
    begin
      SearchName:=trim(Edit1.Text);
      SearchRoom:=trim(Edit2.Text);
      if SearchName<>NULL or SearchRoom<>NULL then
      begin
      with ADOQuery1 do
      begin
         close;
         SQL.Clear;
         SQL.Add('select * from customer,room');
         SQL.Add('where customer.roomnum=room.roomnum');
         SQL.Add('AND (customer.name='''+SearchName+'''OR room.roomnum='''+SearchRoom+''')');
         open;
      end;
      end;
      it:=ADOQuery1.FieldByName('indate').asdatetime;
      nowt:=strtodate(Edit3.Text);
      DBEdit8.DataField:=ADOQuery1.FieldByName('indate').FieldName;
      DBEdit9.DataField:=ADOQuery1.FieldByName('price').FieldName;
      Edit4.Text:=datetostr(nowt-it); //这里得出来的结果是:(2004-06-28)-(2004-06-24)=1900-1-3,哪里有错?晕晕...
    end;
      

  4.   

    楼上的大鸟哥,这里是Delphi论坛,你怎么写VB代码给人家,我说你是不是在搞笑啊?
    不过道理是对的,同意直接相减。var
      D1,D2:TDateTime;
      D3:single;                   //注意此处的变量类型为singleD1:=StrToDate('2004-04-01');
    D2:=StrToDate('2004-05-03');
    D3:=D2-D1;
    Label1.caption:=FloatToStr(D3);//将结果显示在Label1上
      

  5.   

    Sorry,上边是手误,我是想问有分吗?