我还是用bcb的语法告诉你吧:
  TDateTime dt1="2001-10-8";
TDateTime dt2="2001-1-1";int DayNo=dt1-dt2+1;OK

解决方案 »

  1.   

    楼上的好像有点小错误:
      TDateTime是double类型的,用int定义DayNo变量,能通过编译器那关吗?
     double DayNo = dt1-dt2+1;
    或者
     int DayNo = floor(dt1-dt2)+1;
      

  2.   

    bcb里当然可以,你是一下不就知道了
      

  3.   

    function YearOderOfDay(ADate: TDate);
    var 
      y, m, d: word;
    begin
      Decodedate(ADate, y, m, d);
      Result := Int(ADate - Encodedae(y, 1, 1));
    end;
      

  4.   

    更正:
      Result := Inc(Int(ADate - Encodedae(y, 1, 1)));BTW: 你的问题的分数太多了吧。
      

  5.   

    好像这样才行,原来如此就行我简直了解太少了
    function YearOderOfDay(ADate: TDate);
    var 
      y, m, d: word;
    begin
      Decodedate(ADate, y, m, d);
      Result := floor(ADate - Encodedate(y, 1, 1));
    end;