1,如果获得7天前的Tdatetime时间对象?2,如何获得上个月26号的Tdatetime时间对象?

解决方案 »

  1.   


    var
      dt1,dt2: TDateTime;
      y,m,d: Word;
    begin
      dt1 := Trunc(now) - 7;
      ShowMessage(FormatDateTime('YYYY-MM-DD HH:NN:SS',dt1));
      dt2 := StartOfTheMonth(now);
      DecodeDate(dt2,y,m,d);
      while (d<>26) do
      begin
        dt2 := dt2 - 1;
        DecodeDate(dt2,y,m,d);
      end;
      ShowMessage(FormatDateTime('YYYY-MM-DD HH:NN:SS',dt2));
    end;
      

  2.   

    uses dateutils;var
      D:TDateTime;1. D:=Date-7;
    2. if monthof(date)=1 then
        D:=EncodeDate(yearof(date)-1,12,26)
      else
        D:=EncodeDate(yearof(date),monthof(date)-1,26);
      

  3.   

    uses DateUtilsIncDay(now,-7);
    RecodeDay(IncMonth(now,-1),29);