万年梨吃法之我见

2008-04-09 04:39:56来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

{ 万年梨吃法之我见,万年梨吃法之我见,万年梨吃法之我见}
program www;
var year :integer;
Function monthday(year,month:integer):integer;{第year年第month月的天数}
begin
case month of
0 :monthday:=0;
4,6,9,11 :monthday:=30;
1,3,5,7,8,10,12:monthday:=31;
2 :if (year mod 4 =0) and (year mod 100$#@60;>0) or (year mod 400=0)
then monthday :=29
else monthday :=28
end; end;
Function firstday(year,month:integer):integer; {第year年第month月一日是星期几}

var m,n,i :integer;
totaldays :integer;
Function monthto(year,month:integer):integer; {第year年从一月道(month-1)月?
var y,z :integer;
begin
y:=0;
for z:=1 to ( month-1 ) do
y:=y monthday(year,z);
monthto:=y;
end;
BEGIN
if year>=2000 {以2000年为标准年分情况讨论}
then
begin
i:=0;
for n:=1999 to (year-1) do
if monthday(n,2)=29 then i:=i 1;
totaldays:=year-2000 i;
m:=(totaldays 6)mod 7;
m:=(m monthto(year,month)) mod 7;
firstday:=m;
end
else {年数小于2000的算法}
begin
i:=0;
for n:=1999 downto (year-1) do
if monthday(n,2)=29 then i:=i 1;
totaldays:=-(1999-year i 1);
m:=(totaldays 6)mod 7;
m:=(m monthto(year,month)) mod 7;
firstday:=m;
end;
END;
Procedure weekout; {输出三个星期头}
var a :integer;
begin
for a:=1 to 3 do
write( SU MO TU WE TH FR SA); writeln;
end;
PROCEDURE day(x:integer); {输出三个月日子的过程}
var month1,month2,month3 :integer;
dayone,daytwo,daythree :integer;
t ,p :integer;
BEGIN
month1:=1; month2:=1; month3:=1;
dayone:=firstday(year,x);
daytwo:=firstday(year,(x 1));
daythree:=firstday(year,(x 2));
write(month1:3*(dayone 1)); {输出三个月天数的第一行}
repeat if dayone$#@60;6 then be month1:=month1 1;
write(month1:3); end;
dayone:=dayone 1;
until dayone=7;
write(month2:3*(daytwo 1));
repeat if daytwo$#@60;6 then begin month2:=month2 1;
write(month2:3)end;
daytwo:=daytwo 1;
until daytwo=7;
write(month3:3*(daythree 1));
repeat if daythree$#@60;6 then begin month3:=month3 1;
write(month3:3); end;
daythree:=daythree 1;
until daythree=7;
writeln; p:=0;
repeat p:=p 1; {输出三个月天数的2,3,4行}
t:=0;
repeat
month1:=month1 1;write(month1:3);
t:=t 1;
until t=7;
t:=0;
repeat
month2:=month2 1;write(month2:3);
t:=t 1;
until t=7;
t:=0;
repeat
month3:=month3 1;write(month3:3);
t:=t 1;
until t=7; writeln;
until p=3; p:=0;
repeat p:=p 1; {输出三个月天数的5,6}
begin t:=0 ;
repeat if month1=monthday(year,x) then write( :3)
else begin month1:=month1 1; write(month1:3); end;
t:=t 1;
until (t=7) end;
begin t:=0;
repeat if month2=monthday(year,x 1) then write( :3)
else begin month2:=month2 1;write(month2:3); end;
t:=t 1;
until (t=7)
end;

begin t:=0;
repeat if month3=monthday(year,x 2) then write( :3)
else begin month3:=month3 1; write(month3:3); end;
t:=t 1;
until (t=7)
end; writeln;
until p=2;
END;
BEGIN {main program}
readln(year);
writeln( 一月 二月 三月);

weekout; day(1);
writeln( 四月 五月 六月);
weekout; day(4);

writeln( 七月 八月 九月);
weekout; day(7);
writeln( 十月 十一月 十二月);
weekout; day(10);
END.
{这是my friend 替我发送的! lionman }

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用VB 5.0实现多画面播放功能

下一篇:万年历的程序代码