各位大侠,我想把某一年中某一个月中的 第一天 和 最后一天 的日期取出来
比如2002-05-02  取出 2002-05-01 和 2002-05-31请各位大侠教教我吧在线等待

解决方案 »

  1.   

    uses DateUtils;
    var
     s,s1,s2:TDateTime;
     year,month,day:word;
    begin
       s:=strtodatetime('2002-05-02');
       DecodeDate(s,year,month,day);
       s1:=incDay(s,-day+1);
       s2:=incDay(s1,DaysInMonth(s1)-1);
       showmessage(datetostr(s1));
       showmessage(datetostr(s2));
    end;
      

  2.   

    uses DateUtils;
    var
     s,s1,s2:TDateTime;
     year,month,day:word;
    begin
       s:=strtodatetime('2002-05-02');
       month:=s.month;
       while s.month=month then
           s:=incDay(s,-1);
       s1:=incDay(s,1);   s:=strtodatetime('2002-05-02');
       month:=s.month;
       while s.month=month then
           s:=incDay(s,1);
       s2:=incDay(s,-1);
       end;
      

  3.   

    D6中如下:var
      dt,dt1,dt2:TDateTime;
      year,month,day: word;
    begin
      dt := strtodatetime('2002-05-02');;
      DecodeDate(dt,year,month,day);
      dt1 := EncodeDate(year,month,1);
      dt2 := EndOfAMonth(Year,Month);
      showmessage(dateTostr(dt1) + '  ' + datetostr(dt2));
    end;
      

  4.   

    我忘了D5中有没有EndofAMonth这个函数了,也可以用下面的:
    var
      dt,dt1,dt2:TDateTime;
      year,month,day: word;
    begin
      dt := strtodatetime('2002-2-02');
      DecodeDate(dt,year,month,day);
      dt1 := EncodeDate(year,month,1);
      //dt2 := EndOfAMonth(Year,Month);
      if month = 12 then
        dt2 := EncodeDate(year+1,1,1)
      else
        dt2 := EncodeDate(year,month+1,1);
      dt2 := dt2 -1;
      showmessage(dateTostr(dt1) + '  ' + datetostr(dt2));
    end;
      

  5.   

    取5月份的第一天:
    Date1:=EncodeDate(2003,6,1);
    取5月份的最后一天:
      Date1:=EncodeDate(2003,6,1);
      Date1:=Date1-1;