例如:2007-12-28到2008-01-02之间,生成结果如下的string型数组:[2007-12-28,2007-12-29,2007-12-30,2007-12-31,...2008-01-02]   
 

解决方案 »

  1.   

    var
      dateList:Array of string;
      dateBetween:Integer;
      I:Integer;
      s:string;
    begin
      dateBetween:=daysBetween(strtodatetime('2007-12-28'),strtodatetime('2008-01-02'));
      setlength(dateList,dateBetween+1);
      for I:=0 to dateBetween do
      begin
        s:=formatdatetime('yyyy-mm-dd',incday(strtodatetime('2007-12-28'),I));
        dateList[I]:=s;
      end;
      ....
      setlength(dateList,0);
    end;
      

  2.   

    var
      dateStr: array of string;
      i,count: Integer;
      Date1, Date2: TDate;
    begin
      count := DaysBetween(Date1, Date2);
      SetLength(dateStr, count);
      for i := 0 to count - 1 do
        dateStr[i] := FormatDateTime('yyyy-mm-dd', Date1 + i);
      

  3.   

    var
      ObjTmp : TMkt_Highbar_Header;
      i,ICount :Integer;
      TotalCol: array of Integer;
      strTmp:string;
      ArrayOfDays: array of String;
      ArrayOfFieldNames: array of String;
      ArrList: array of string;
    begin
      inherited;
        if bedtStart_Date.Text ='' then
      begin
        msgBox('开始日期不能为空!');
        Exit;
      end;
       if bedtEnd_Date.Text = '' then
      begin
        msgBox('结束日期不能为空!');
        Exit;
      end;
      dgView.ClearStringGrid(2);
       
      iCount := DayOf(StrToDate(bedtEnd_Date.Text)) - DayOf(StrToDate(bedtStart_Date.Text));
      SetLength(ArrList, iCount);
      for iCount := 0 to iCount - 1 do
       begin
        ArrList[iCount] := IntToStr(iCount);
      //for i:=0 to StrToint(bedtEnd_Date.Text)-StrToint(bedtStart_Date.Text) do
     
       ArrayOfDays[iCount]:=IntToStr(MonthOf(StrToDate(bedtStart_Date.Text)))+IntToStr(DayOf(StrToDate(bedtStart_Date.Text)));
       ArrayOfFieldNames[iCount]:='No'+IntToStr(iCount);
       end;
      //产生动态列
      dgView.ColCount := (dgView.ColCount-3) + (High(ArrayOfDays) - Low(ArrayOfDays) +1)  ;
      for ICount := Low(ArrayOfDays) to High(ArrayOfDays) do
        begin
          dgView.Columns[ICount + 12].Title.PCaption := '报表上报';
          dgView.Columns[ICount + 12].Title.Caption := ArrayOfDays[ICount];
          dgView.Columns[ICount + 12].FieldName := ArrayOfFieldNames[ICount];
          dgView.Columns[ICount + 12].DisplayMask := '###,##0.####';
          dgView.Columns[ICount + 12].Format := cfNumber;
          dgView.Columns[ICount + 12].Alignment := taRightJustify;
         dgView.UseMultiTitle := False;
         dgView.UseMultiTitle := True;
        end;
    为什么程序运行到红色处就出错!