已知公元1年1月1日是星期一.任意输入一个年份和月份(公元1年1月以后),输出该月的日历表.用PASCAL语言

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 18:32:22
已知公元1年1月1日是星期一.任意输入一个年份和月份(公元1年1月以后),输出该月的日历表.用PASCAL语言

已知公元1年1月1日是星期一.任意输入一个年份和月份(公元1年1月以后),输出该月的日历表.用PASCAL语言
已知公元1年1月1日是星期一.任意输入一个年份和月份(公元1年1月以后),输出该月的日历表.用PASCAL语言

已知公元1年1月1日是星期一.任意输入一个年份和月份(公元1年1月以后),输出该月的日历表.用PASCAL语言
这个是输入年月日,还有一些附加的东西的.应该没事.
Program day;
Label
1,2,3;
Const
dt: Array[0..6] OF string = ('周日', '周一', '周二', '周三', '周四', '周五', '周六');
Var
date, year, month: integer;
i,j,k,m,n:integer;
a:array[0..47] of integer;
c:char;
m1,m2:integer;
procedure line();
var
i:integer;
begin
for i:=1 to 40 do write('*');
writeln;
end;
Function year1(year, month, day: longint): Longint;
Var
sum, i: longint;
Begin
sum := 0;
for i:=1 TO month-1 Do
Begin
if i in [1, 3, 5, 7, 8, 10, 12] Then sum := sum + 31;
if i in [4, 6, 9, 11] Then sum := sum + 30;
if i = 2 Then Begin
if ((year mod 4 = 0) And (year mod 100 0)) Or (year mod 400 = 0) Then sum := sum + 29 Else sum := sum + 28;
End;
End;
year1 := sum + day;
End;

Function week(year, month, day: longint): longint;
Begin
week := (((year - 1) + (year - 1) div 4 - (year - 1) Div 100 + (year - 1) Div 400) + year1(year, month, day)) Mod 7;
End;
procedure calendar(var month:integer);
begin
if (month=0) then begin year:=year-1; month:=12; end;
if (month=13) then begin year:=year+1; month:=1; end;
line();
writeln(year:12,'年',month,'的月历');
writeln;
write (' 日 一 二 三 四 五 六');
k:=date;
m:=week(year,month,1);
for i:=0 to m-1 do
a[i]:=32;
case month of
1,3,5,7,8,10,12: n:=m+30;
4,6,9,11: n:=m+29;
2: if ((year mod 4 = 0) And (year mod 100 0)) Or (year mod 400 = 0)
Then n:=m+28 Else n:=m+27;
end;
for i:=m to n do
a[i]:=i-m+1;
for i:=n+1 to 47 do
a[i]:=32;
writeln;
for i:=0 to m-1 do
write (chr(a[i]):4);
for i:=m to n do
begin
write (a[i]:4);
if (i+1) mod 7=0 then writeln;
end;
for i:=n+1 to 47 do
begin
write (chr(a[i]):4);
if i mod 7=0 then writeln;
end;
writeln;
line();
end;

Begin
1:Writeln('输入 年份 ');
Readln(year);
Writeln('输入 月份 ');
Readln(month);
Writeln('输入 日期 ');
Readln(date);
Writeln(year,'-',month,'-',date,'是',dt[week(year, month, date)]);
calendar(month);
2: writeln (' 输入Y重来');
writeln (' 输入N,查看下一个月月历');
writeln (' 输入L,查看上一个月月历');
writeln (' 输入其他字符退出');
line();
readln(c);
if c='y' then goto 1;
if c='Y' then goto 1;
if ((c='n') or (c='N')) then begin month:=month+1;calendar(month);end;
if ((c='l') or (c='L')) then begin month:=month-1;calendar(month); end;
if ((c'y')and(c'Y')and(c'n')and(c'N')and(c'l')and(c'L')) then goto 3;
goto 2;
3:
End.

已知公元1年1月1日是星期一.任意输入一个年份和月份(公元1年1月以后),输出该月的日历表.用PASCAL语言 已知公元1年1月1日是星期一,计算输入的年月日是星期几?(用C语言编写)思路:计算出输入的年月日和公元1年1月1日距离多少天.计算公元1年到输入日期的上一年年底有多少天.再计算输入的 编写一个程序,只要输入年月日,就能回答那天是星期几[实验提示]1、已知公元1 年1 月1 日是星期一2、算法提示:如果输入的是2006 年3 月12 日,计算方法是(1) 先计算从公元0001 年初(0001-1-1)到 已知1996年1月1日是星期一, C语言.求指教!已知公元1年1月1日是星期一.计算输入的年月日是星期几.#include void main(){long year,month,day;long totalday;int week;int monthday[12]={0,31,59,90,120,151,181,212,243,273,304,int monthdayLeap[12]={0,31,60,91,121, vb 给定年月日(1900年以后的日期),求这一天是星期几.不可使用标准函数. 公元1年1月1日是星期一 最近的未来的公元哪一年的月、日、星期与2012年完全相同?例如2012年的3月18日是星期日,那一年的3月18日也是星期日;2012年10月1日是星期一,那一年的10月1日也是星期一. 已知2002年7月1日是星期一,求2015年元旦是星期几 哪一年的9月1日是星期一 公元2400年1月1日是星期几? 公元年月日,是阴历的几月几号,星期几?许多人都说是星期一,可我推算出来确是星期天.我的问题是公元1年1月1日,是阴历的几月几号,星期几? 公元1978年1月6日是星期二.公元2000年1月1日是星期几 1996年的1月1日是星期一,那么这一年共有多少个星期一? 1996年1月1日是星期一那这一年有多少个星期一 1996年的1月1日是星期一,那么这一年共有多少个星期一? 1992年1月1日是星期一,那么这一年共有多少个星期一 1996年1月1日是星期一,这年一共有多少个星期一? 如果2012年1月1日是星期一,10月1日是星期几