pascal程序难题.

来源:百度知道 编辑:UC知道 时间:2024/05/11 04:43:12
计算1901年到2099年之间的某年某月是星期几.
要把过程说清楚哦,用CASE

假定1901年1月1日星期1。
var year,month,day,days,tempyear,i:integer;
begin
{读入年月日}
repeat
writeln("Which year?");
readln(year);
until (year>1900)and(year<2000);
repeat
writeln("Which month?");
readln(month);
until (month>0)and(month<13);
writeln("Which day?");
readln(day);

{计算输入的年份以前距1901.1.1有几天}
tempyear:=year-1901;
days:=(tempyear div 4)*1461+(tempyear mod 4)*365;

{计算输入的(月份-1)距输入年份1月1日共有几天}
for i:=month-1 downto 1 do
begin
case i of
1,3,5,7,8,10,12:days:=days+31;
4,6,9,11:days:=days+30;
2:
begin
if (year mod 4=0) then days:=days+29
else days:=days+28;
end;
end;
end;

{计算当前日子距1901.1.1总共有几天}
days:=days+day;

{输出星期}