我用两个DATETIMEPICKER相减,得到的不是具体的天数而是一个日期型数据.这是为什么?我怎样才能得到这个期望的天数呢?譬如说2002年3月8日跟2003年4月9日之间隔了多少天?

解决方案 »

  1.   

    var
      td1, td2: TDateTime;
      f: Double;
    begin
      td1 := strtodatetime('1999-2-3 12:23:43');
      td2 := strtodatetime('1992-4-5 12:23:43');
      f := td1 - td2;
      //f的整数部分是相差的天数
    end;
      

  2.   

    c++budier写的:
      前面必须加入日期、时间格式控制全局:   
       DateSeparator = '-';
       ShortDateFormat = "yyyy-mm-dd ";
       TimeSeparator = ':';
       LongTimeFormat=" hh:nn:ss";
    才能保证
     '1999-2-3 12:23:43'为合法的时间格式
      

  3.   

    var
       b:real;
       i:integer;
    begin
      b:=datetimepicker1.DateTime-datetimepicker2.datetime;
      i:=round(b);//这样就能得出天数!
      //trunc(b) ;
      showmessage(inttostr(i));
    end;
      

  4.   

    让你显示得到的整数,而不是显示得到的datetime
    showmessage(inttostr(result))
    不是 showmessage(datetimetostr(result))
    也不是 showmessage(formatdatetime(result))
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var Date1,Date2,Date3:TDate;
        i:String;
    begin
      Date1:=Date;
      Date2:=Date1-4;
      ShowMessage(FloatToStr(date1-date2));
    end;这个一定行的。
      

  6.   

    你可以用sqlserver的函数datediff(dd,begindate,enddate)来取得天