//大七 2016年6月26日23:21:44
unit Q_MRQD;
interface
uses Classes, SysUtils, DateUtils;
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
implementation
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
Main2(Npc,Player,Args);
end;
procedure Main2(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S =
[[
%s %s %s %s %s %s %s\
<{I=$10;F=DaysSigned.Data}/@QD($10)> <{I=$11;F=DaysSigned.Data}/@QD($11)> <{I=$12;F=DaysSigned.Data}/@QD($12)> <{I=$13;F=DaysSigned.Data}/@QD($13)> <{I=$14;F=DaysSigned.Data}/@QD($14)> <{I=$15;F=DaysSigned.Data}/@QD($15)> <{I=$16;F=DaysSigned.Data}/@QD($16)>\
<{I=$20;F=DaysSigned.Data}/@QD($20)> <{I=$21;F=DaysSigned.Data}/@QD($21)> <{I=$22;F=DaysSigned.Data}/@QD($22)> <{I=$23;F=DaysSigned.Data}/@QD($23)> <{I=$24;F=DaysSigned.Data}/@QD($24)> <{I=$25;F=DaysSigned.Data}/@QD($25)> <{I=$26;F=DaysSigned.Data}/@QD($26)>\
<{I=$30;F=DaysSigned.Data}/@QD($30)> <{I=$31;F=DaysSigned.Data}/@QD($31)> <{I=$32;F=DaysSigned.Data}/@QD($32)> <{I=$33;F=DaysSigned.Data}/@QD($33)> <{I=$34;F=DaysSigned.Data}/@QD($35)> <{I=$35;F=DaysSigned.Data}/@QD($35)> <{I=$36;F=DaysSigned.Data}/@QD($36)>\
<{I=$40;F=DaysSigned.Data}/@QD($40)> <{I=$41;F=DaysSigned.Data}/@QD($41)> <{I=$42;F=DaysSigned.Data}/@QD($42)> <{I=$43;F=DaysSigned.Data}/@QD($43)> <{I=$44;F=DaysSigned.Data}/@QD($44)> <{I=$45;F=DaysSigned.Data}/@QD($45)> <{I=$46;F=DaysSigned.Data}/@QD($46)>\
<{I=$50;F=DaysSigned.Data}/@QD($50)> <{I=$51;F=DaysSigned.Data}/@QD($51)> <{I=$52;F=DaysSigned.Data}/@QD($52)> <{I=$53;F=DaysSigned.Data}/@QD($53)> <{I=$54;F=DaysSigned.Data}/@QD($54)> <{I=$55;F=DaysSigned.Data}/@QD($55)> <{I=$56;F=DaysSigned.Data}/@QD($56)>\
<{I=$60;F=DaysSigned.Data}/@QD($60)> <{I=$61;F=DaysSigned.Data}/@QD($61)> <{I=$62;F=DaysSigned.Data}/@QD($62)> <{I=$63;F=DaysSigned.Data}/@QD($63)> <{I=$64;F=DaysSigned.Data}/@QD($64)> <{I=$65;F=DaysSigned.Data}/@QD($65)> <{I=$66;F=DaysSigned.Data}/@QD($55)>\
]];
var
Year, Month, Day, Hour:Word;
nWeek: integer;
CurrentTime: TDateTime;
y,i:integer;
S1,S2: string;
begin
S1 := Format(S,['星期日','星期一','星期二','星期三','星期四','星期五','星期六']);
DecodeDate(Now, Year, Month, Day);
CurrentTime := StartOfTheMonth(Now);
nWeek := DayOfWeek(StartOfTheMonth(Now))-1;
if(nWeek > 0) then CurrentTime := IncDay(CurrentTime, -nWeek);
y := 24;
S2 := S1;
for i := 1 to 6 do
begin
y := i * 48;
for nWeek := 0 to 6 do
begin
y := i * 48;
DecodeDate(CurrentTime, Year, Month, Day);
debug(Format('$%d%d %s',[i,nWeek,Day.ToString])) ;
s2 := ReplaceStr(S2, Format('$%d%d',[i,nWeek]),Day.ToString);
CurrentTime := IncDay(CurrentTime, 1);
end;
end;
Npc.Say(Player, S2 );
end;
end.
procedure QD(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
Debug(Args.Str[0]);
end;
end.
代码
最终运行效果
根据当前月份动态生成日历