我在窗体上加上两个Datetimepicker1时间控件,一个Label1和一个Button控件
  我想通过点击Button来获取两个Datetimepicker之间的差,之后返回给Label1.Caption,但返回的确是一个时间类形的值"1900-1-1";
第一个Datetimepicker1的date的值为:2004-8-28
第二个Datetimepickdr2的date的值为:2004-8-26
用第一个减第二个返回值应该是2才对,为什么会是1900-1-1呢,我搞不明白.
我做的代码如下:
var
  a:tdate;
begin
  a:=d1.Date-d2.Date;
  label1.Caption:=datetostr(a);
还请大家帮我从新写过一遍,谢谢了!!

解决方案 »

  1.   

    var
      a: real;
    begin
      a := dtpDate1.Date - dtpDate2.Date;
      label1.Caption := floattostr(trunc(a));
      

  2.   

    var i:integer;
    begin
    i:=daysbetween(dateof(datetimepicker2.Datetime),dateof(datetimepicker1.Datetime));
    label1.Caption:=inttostr(i);
    end;
      

  3.   

    var date:integer;
    begin
    date:=daysbetween(datetimepicker2.Datetime,datetimepicker1.Datetime);
    label1.Caption:=inttostr(date);
    end;
    //daysbetween返回相差天数
      

  4.   

    Returns the number of days (including fractional days) between two specified TDateTime values.
    Delphi syntax:
    function DaySpan(const ANow, AThen: TDateTime): Double;
    Description
    Call DaySpan to obtain the difference, in days, between two TDateTime values. Unlike the DaysBetween function, which only counts whole days, DaySpan reports incomplete days as a fraction of an entire day.
    用DAYSPAN可以获得确切的天数.你再转换为小时啊. try! from delphi help online