比如今天是2005-7-21,我现在要得到这个礼拜的星期一的日期,即2005-7-18
请问怎么实现

解决方案 »

  1.   

    给你写一个。
    function DateToMonday(srcDate: TDateTime): TDateTime;
    const
      days: array[1..7] of Byte  = (7, 1, 2, 3, 4, 5, 6);
    var
      ipos: integer;
    begin
      ipos := (days[DayOfWeek(srcDate)] - 1) * -1;
      Result := IncDay(Now, ipos);
    end;
      

  2.   

    如果你用于数据库,如果你的数据库每个星期的第一天是星期日:
    星期日:SELECT DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0) 
    星期一:SELECT DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)+1
      

  3.   

    FormatDateTime('yyyy-mm-dd', Date - DayOfWeek(Date) + 2)
      

  4.   

    function WeekofDay(getDate: TDateTime): TDateTime;
    begin
      Result := getDate - DayOfWeek(getDate) + 2
    end;
      

  5.   

    FormatDateTime('yyyy-mm-dd', Date - DayOfWeek(Date) + 2)
      

  6.   

    var i:integer;
        f_date,e_date:tdate;
      begin
        i:=dayofweek(2005/7/21);//求现在是第几周
        f_date:=startofaweek(2005,i);//求本周的第一天
        e_date:=endofaweek(2005,i);//求本周的最后一天
      END;