2013-12-15
我写的程序
var
i,yy,mm,dd,f:longint;
y,m,d:integer;
procedure try(yy,mm,dd:longint);
begin
if (yy mod 400=0) or ((yy mod 4=0) and (yy mod 1000)) then y:=3
else y:=0;
if (mm=1) or (mm=3) or (mm=5) or (mm=7) or (mm=8) or (mm=10) or (mm=12) then m:=3;
if (mm=2) and (y=3) then m:=2;
if (mm=2) and (y=0) then m:=1;
if (mm=4) or (mm=6) or (mm=9) or (mm=11) then m:=0;
end;
begin
readln(yy,mm,dd);
readln(f);
try(yy,mm,dd);
for i:=1 to f do
begin
if (m=3) and (dd=31)
then begin
if mm=12 then begin yy:=yy+1; mm:=1; dd:=1; end
else begin mm:=mm+1; dd:=1; end;
end
else if (m=2) and (dd=29)
then begin mm:=mm+1; dd:=1; end
else if (m=1) and (dd=28)
then begin mm:=mm+1; dd:=1; end
else if (m=0) and (dd=30)
then begin mm:=mm+1; dd:=1; end
else dd:=dd+1;
try(yy,mm,dd);
end;
writeln(yy,'-',mm,'-',dd);
end.