用Delphi编写一个程序:
  任意输入两个日期,求这两个日期之间所有周的开始日期和结束日期
  例如:输入2004-12-8和2004-12-30,
  输出(保存到Access的表中):
  1. 2004-12-8,2004-12-11
  2. 2004-12-12,2004-12-18
  3. 2004-12-19,2004-12-25
  4. 2004-12-26,2004-12-30

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        dtBegin,dtEnd:TDateTime;
        i:integer;
        dtCurMon:TDateTime;
    begin
        dtBegin:=StrToDate(Edit1.Text);
        dtEnd:=StrToDate(Edit2.Text);
        dtCurMon:=0;
        for i:=Trunc(dtBegin) to Trunc(dtEnd) do
        begin
            case DayOfWeek(i) of
                1:
                    dtCurMon:=i;
                7:
                begin
                    if dtCurMon>0 then
                        Memo1.Lines.Add(FormatDateTime('yyyy-mm-dd',dtCurMon)+','+FormatDateTime('yyyy-mm-dd',i))
                    else
                        Memo1.Lines.Add('无周一'+','+FormatDateTime('yyyy-mm-dd',i));
                    dtCurMon:=0;
                end;
            end;
        end;
    end;
      

  2.   

    DecodeDateWeek() 获得周次
    EecodeDateWeek() 获得周一~周日的日期
      

  3.   

    到DateUtils这个单元看看,全是日期时间处理函数。