如题

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      d: tdatetime;
    begin
      d:= strtodatetime('2009-10-12');
      showmessage('上周一:'+datetostr(incday(startoftheweek(d),-7)));
      showmessage('上周五:'+datetostr(incday(endoftheweek(d),-9)));
    end;
      

  2.   

    delphi的日期是以天为单位的浮点数,减1就是前一天
      

  3.   

    //uses DateUtils
    procedure TForm1.Button1Click(Sender: TObject);
    var
      dt, dt1, dt5: TDateTime;
    begin
      dt := IncWeek(Now(), -1);//上周的今天
      dt1 := StartOfTheWeek(dt);//上周的星期一
      dt5 := IncDay(dt1, 5 - 1);//上周的星期五  ShowMessage
      (
        '上周一:' + DateToStr(dt1) + #13#10 +
        '上周五:' + DateToStr(dt5)
      );
    end;
      

  4.   

    效率太低,这里写一个简单的公式上周一  Trunc(Now()/7-1) * 7 - 5
    上周五  Trunc(Now()/7-1) * 7 - 1
      

  5.   

    Sorry,我在网页上写的,差点忘记DELPHI的程序怎么写了,DELPHI的整数除法更快:
    上周一  ((integer(Now()) div  7)-1) * 7 - 5
    上周五  ((integer(Now()) div  7)-1) * 7 - 1
      

  6.   

    还是不对,呵呵,应该这样
    上周一  Trunc(Now() div 7-1) * 7 - 5 
    上周五  Trunc(Now() div 7-1) * 7 - 1 
      

  7.   

    不用这么麻烦,用API函数先把系统时间设置为那个日期,再减去相关的天数,再用API函数取系统时间就行了,想要哪个数据就有哪个数据。