现成di组件可以用TCalendar来帮助计算,有Next和Prev,要不然就找其它控件,再就是自己写。    再就是多加些分,人家就可能把源代码帖给你di !

解决方案 »

  1.   

    如题什么?分別得到年﹑月﹑月中有多少天?怎么有两个月?日期整数部分直接相减即可。
    本年:procedure CalcDays( aDate: TDate; var DaysOfYear, DaysOfMonth: Integer );
    var
      wYear, wMonth, wDay: Word;
    begin
      DecodeDate( aDate, wYear, wMonth, wDay );  // 得年中天数
      DaysOfYear := Trunc(EncodeDate( wYear+1, 1, 1))-Trunc(EncodeDate(wYear, 1, 1));  // 月中天数
      if wMonth=12 then
        DaysOfMonth := 31
      else
        DaysOfMonth := Trunc(EncodeDate( wYear, wMonth+1, 1))-Trunc(EncodeDate(wYear, wMonth, 1));
    );
      

  2.   

    function GetDayCount(Y,M:Word):Word;
    begin
    while True do try
      EncodeDate(Y,M,result);
      exit;
    except
      result:=result-1;
    end;
    end;Tested