文档介绍:黄河科技学院C语言课程设计
课题: 万年历
姓名:
学号:
年级专业:
班级:
指导老师:
院系:
提交日期:2010年4月
通过C语言编程实现了一彳、万年历,能实现基本的万年历功能。通过本章的讲解使 读者1+2) %7=3%7=星期三
1600年3月1日星期几二(0+0/4+0+1+2) %7=3%7=星期三
2000年3月1日星期几=(0+0/4+0+1+2)%7=3%7=星期三
2001年3月1日星期几=(1+1/4+0+1+2)%7=4%7=星期四
2004 年 3 月 1 日星期几=(4+4/4+0+1+2)%7=8%7=星期一
2008 年 3 月 1 日星期几=(8+8/4+0+1 +2)%7=13%7=星期六
2042 年 3 月 1 日星期几=(42+42/4+0+1+2)%7=55%7=星期六
平4百年3月1日星期算法(百年%4<>0)
公式为:
某年3月4 H星期几=(百年%4恪天+年+年/4+月星期表+日+2天)%7
例:仃00年3月1 LJ星期几=(17%4*5+0+0/4+0+1 +2) %7=8%7=星期一(注意:1700年 是平年)
1800 年 3 月 1 日星期几=(18%4*5+0+0/4+0+1 +2)%7=13%7=星期六(注意:1800 年是
平年)
年 3 月 1 日星期几=(19%4*5+0+0/4+0+1+2)%7=18%7=星期四(注意:4900 年是
平年)
年 3 月 1 日星期几=(19%4*5+1+1 /3+0+1 +2) %7=19%7=星期五
1918 年 3 月 1 口星期几=(19%4恪+18+18/4+0+1+2)%7=(15+22+3)%7=40%7二星期五
1958 年 3 月 1 日星期几=(19%4*5+58/4*5+58%4+3)%7=(15+70+2+3)%7=90%7=星期 六
1988 年 3 月 1 日星期几=(19%4*5+88/4*5+88%4+3)%7=(15+110+0+3)%7=128%7=星
期二
1999 年 3 月 1 日星期几=(19%4*5+99/4*5+99%4+3)%7=(15+120+3+3)%7=141%7=星 期一
2100
日星期几=(21%4*5+0/4#5+0%4+3)%7=(5+0+0+3)%7=8%7=星期一(注 意:2100 年
是平年)
2101
2102
2103
2104
日星期几=(21%4*5+1/4*5+1%4+3)%7=(5+0+1+3)%7=9%7=星朋二 口星期几=(21%4*5+2/4*5+2%4+3)%7=(5+0+2+3)%7=10%7=星期三 日星期几=(21%4*5+3/4*5+3%4+3)%7=(5+0+3+3)%7=11%7=星期四
日星期几=(21 %4*5+4/4*5+4%4+3)%7=(5+1 +0+3)%7=9%7=星朋二(注 意:2104 年
是闰年)
9999 年 3 月 1 口星期几=(99%4*5+99/4*5+99%4+3)%7=(120+15+3+3)%7=141%7=星 期一
注:按400年一•轮冋! ( 400年前是一家)的说法
1600年>2000年是一样的;
仃00年>2100年是一样的;
1800年,2200年是一样的;
1900年,2300年是一样的。
其中万年某口星期算法
其公式为:
某日星期几二(百年%05天+年+年/4+月星期表+日+2天)%7
同星期偏差表
闰年
1月
2月
3月
4月
5
月6
月
7月
8月
9月
40月
11月
12
月
天数
31
29
31
30
31
30
3
1
31
30
31
30
31
星期
3
6
0
3
5
1
3
6
2
4
0
2
平年
1月
2月
3月
4月
5
月6
月
7月
8月
9月
10月
11月
12
月
天数
31
28
31
30
31
30
3
1
31
30
31
30
31
星期
4
0
0
3
5
1
3
6
2
4
0
2
为对以上的万年历星期的算法是正确的对其进行了以下的计算:
•对于二十世纪任意日期可以用公式某日星期几 =(百年%4恪天+年+年/4+平年月星期
表+口 +2天)%7= (19%4*5天+年+年/4+平年月星期表+日+2天)%7= (15天+年+年/4+平年月星 期表+ 日+2天)%7以下就是根据上面对其进行的计算:
1900