周一至周五每天一人。周六周日每天二人。
for i:=0 to 30 do
begin 内容
end;完成示例:周一 人员一
周二 人员二
周三 人员三
周四 人员四
周五 人员五
周六 人员六 人员七
周日 人员八 人员九
周一 人员十
........
循环下去....一个月循环完
for i:=0 to 30 do
begin 内容
end;完成示例:周一 人员一
周二 人员二
周三 人员三
周四 人员四
周五 人员五
周六 人员六 人员七
周日 人员八 人员九
周一 人员十
........
循环下去....一个月循环完
var
ResultList : TStringList;
WeekInd,CurrDay : integer;
PersonInd : String;
……
for I := 1 to 30 do begin
WeekInd := I div 9; //第几周,一周共9个人
CurrDay := I mod 7; //周几
if (CurrDay >= 1) and ((CurrDay <= 5)) then begin
PersonInd := InttoStr(WeekInd * 9 + CurrDay);
end else
if (CurrDay = 6) then begin
PersonInd := InttoStr(WeekInd * 9 + 6) + ',' + InttoStr(WeekInd * 9 + 7);
end else
if (CurrDay = 0) then begin
PersonInd := InttoStr(WeekInd * 9 + 8) + ',' + InttoStr(WeekInd * 9 + 9);
end;
ResultList.Add('第' + InttoStr(I) + '天,第' + PersonInd + '人');
end;
细节你自己调整吧!
呵呵!
i,b,e,p:Integer;
s:String;
Begin
b:=Trunc(dt1.date);
e:=Trunc(dt2.date);
//mans:array [0..12] of Tman;
p:=0;
for i:=b to do
Begin
s:='星期'+inttostr(DayOfWeek(i));
s:=s+' '+mans[p].name;
Inc(p);
if DayOfWeek(i) in [6,0] then
Begin
s:=s+' '+mans[p].name;
Inc(p);
End;
memo1.lines.add(s);
End;
End;
i,b,e,p:Integer;
s:String;
Begin
b:=Trunc(dt1.date);
e:=Trunc(dt1.date);
//mans:array [0..12] of Tman;
p:=0;
for i:=b to e do
Begin
s:='星期'+inttostr(DayOfWeek(i));
s:=s+' '+mans[p].name;
Inc(p); p:=p mod 13;
if DayOfWeek(i) in [6,0] then
Begin
s:=s+' '+mans[p].name;
Inc(p); p:=p mod 13;
End;
memo1.lines.add(s);
End;
End;
你测试我提供的代码了没?
http://blog.csdn.net/simonhehe/article/details/8781504
对不同月份和起始周都做了处理, delphi XE测试通过.
sorry,昨天没认真测试,今天重新试了下,完全满足要求。非常感谢,散分