如題 ,為什么不是等于整數呢!還有,怎么樣給日期變量賦初值.
 我寫的如下:
  var i:tdate;
begin
  i:=2005/8/11;
  showmessage(datetostr(i));
end;
  結果是:1900/1/21

解决方案 »

  1.   

    使用函数DaysBetween,可以准确求出天数uses DateUtils;...
    procedure TForm1.Button1Click(Sender: TObject);
    var
     i : integer;
    begin
    i:=DaysBetween(d2.Date,d1.Date);//d1和d2是DateTimePicker控件
    edit1.Text:=inttostr(i);
    end;
      

  2.   

    i:=3.14;
    i:=StrToDate('2004-1-1');
    i:=now;
    ...
    依次show下看看
      

  3.   

    依次show 后出現 
     '2004-1-1'is not a valid date
      

  4.   

    to :Hellolongbin
     能解釋一下嗎?
      

  5.   

    var i:tdate;
    begin
      i:='2005/8/11';
      showmessage(datetostr(i));
    end;
      

  6.   

    var i:tdate;
    begin
      i := StrToDate('2005-08-08');
      showmessage(datetostr(i));
    end;
      

  7.   

    其实日期型就是一个双精浮点数,只是起个另外的名字给它而已,所以一切可应用于浮点的运算方式,在日期中都成立。dt1 := StrToDate('2005-08-09');
    dt2 := StrToDate('2005-08-08');
    showmessage (IntToStr(Round(dt1-dt2)); //就可以显示相隔多少天了
      

  8.   

    其实日期型就是一个双精浮点数,只是起个另外的名字给它而已,所以一切可应用于浮点的运算方式,在日期中都成立。dt1 := StrToDate('2005-08-09');
    dt2 := StrToDate('2005-08-08');
    showmessage (IntToStr(Round(dt1-dt2)); //就可以显示相隔多少天了
    ================================
    呵呵,这当中最好不要用Round,而采用Int会好一些,否则相差只有37个小时,应该算是相差了一天,但是这样子取出来却成为了相差两天了