1.DeCodeDatetime
2.处理月
3.EnCodeDatetime

解决方案 »

  1.   

    function GetLastMonth(ADate : TDateTime) : TDateTime;
    var
      dwYear, dwMonth, dwDay : Word;
    begin
      Result := ADate;
      Try
        DeCodeDate(ADate, dwYear, dwMonth, dwDay);
        Result := EncodeDate(dwYear, dwMonth, 1) - 1;
      except
      end;
    end;
      

  2.   

     .....
      DeCodeDate(ADate, dwYear, dwMonth, dwDay);
      dwMonth:=dwMonth-1;
      if dwMonth=0 then
        begin
          dwMonth:=12;
          dwYear:=dwYear-1;
        end;
      Result := EncodeDate(dwYear, dwMonth, dwDay);
     .....