Dim a As Date, b As Datea = "2004-06-12"b = "2004-08-30"b-a=79 直接加减就可以
谢谢楼上!问题是这样的.... 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;
INCDAY
INCYEAR
INDCMONTH
Dim a As Date, b As Datea = "2004-06-12"b = "2004-08-30"b-a=79 直接加减就可以
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;
不过道理是对的,同意直接相减。var
D1,D2:TDateTime;
D3:single; //注意此处的变量类型为singleD1:=StrToDate('2004-04-01');
D2:=StrToDate('2004-05-03');
D3:=D2-D1;
Label1.caption:=FloatToStr(D3);//将结果显示在Label1上