电气工程论文网


  • 首页|
  • 自动化毕业论文|
  • 电子机电毕业论文|
  • 电子通信论文|
  • 电气工程论文|
  • 电子信息工程|
  • 电气工程原创论文|
  • 电气工程免费论文|
原创毕业论文 → 电气工程专业原创毕业论文   现成毕业论文范文 → 电气工程专业毕业论文范文

论文降重

当前位置:电气工程论文网 -> 电子专业免费论文 -> 免费毕业论文--万年历设计(三)

免费毕业论文--万年历设计(三)

本文ID:LW5796
免费毕业论文--万年历设计(三)
以表示为:
 (Y-1)*365 ≡ Y-1 (mod 7).
 其中,≡是数论中表示同余的符号,mod 7的意思是指在用7作模数(也就是除数)的情况下≡号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到了那个著名的、也是最常见到的计算星期几的公式:
 W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (2)
 这个公式虽然好用多了,但还不是最好用的公式,因为累积天数D的计算也比较麻烦。是不是可以用月份数和日期直接计算呢?答案也是肯定的。我们不妨来观察一下各个月的日数,列表如下:
 月 份:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
 --------------------------------------------------------------------------
 天 数: 31 28(29) 31 30 31 30 31 31 30 31 30 31
 如果把这个天数都减去28(=4*7),不影响W除以7的余数值。这样我们就得到另一张表:
 月 份:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
 ------------------------------------------------------------------------
 剩余天数: 3 0(1) 3 2 3 2 3 3 2 3 2 3
 平年累积: 3 3 6 8 11 13 16 19 21 24 26 29
 闰年累积: 3 4 7 9 12 14 17 20 22 25 27 30
 仔细观察的话,我们会发现除去1月和2月,3月到7月这五个月的剩余天数值是3,2,3,2,3;8月到12月这五个月的天数值也是3,2,3,2,3,正好是一个重复。相应的累积天数中,后一月的累积天数和前一月的累积天数之差减去28就是这个重复。正是因为这种规律的存在,平年和闰年的累积天数可以用数学公式很方便地表达:
 ╭ d; (当M=1)
 D = { 31 + d; (当M=2) (3)
 ╰ [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d + i. (当M≥3)
 其中[...]仍表示只取整数部分;M和d分别是想算的日子的月份和日数;平年i=0,闰年i=1。对于M≥3的表达式需要说明一下:[13*(M+1)/5]-7算出来的就是上面第二个表中的平年累积值,再加上(M-1)*28就是想算的日子的月份之前的所有月份的总天数。这是一个很巧妙的办法,利用取整运算来实现3,2,3,2,3的循环。比如,对2004年5月1日,有:
 D = [ 13 * (5+1) / 5 ] - 7 + (5-1) * 28 + 1 + 1
 = 122,
 这正是5月1日在2004年的累积天数。假如,我们再变通一下,把1月和2月当成是上一年的“13月”和“14月”,不仅仍然符合这个公式,而且因为这样一来,闰日成了上一“年”(一共有14个月)的最后一天,成了d的一部分,于是平闰年的影响也去掉了,公式就简化成:
 D = [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d. (3≤M≤14) (4)
 上面计算星期几的公式,也就可以进一步简化成:
 W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] - 7+ (M-1) * 28 + d.
 因为其中的-7和(M-1)*28两项都可以被7整除,所以去掉这两项,W除以7的余数不变,公式变成:
 W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] + d.(5)
 当然,要注意1月和2月已经被当成了上一年的13月和14月,因此在计算1月和2月的日子的星期时,除了M要按13或14算,年份Y也要减一。比如,2004年1月1日是星期四,用这个公式来算,有:
 W = (2003-1) + [(2003-1)/4] - [(2003-1)/100] + [(2003-1)/400] + [13*(13+1)/5]+ 1
 = 2002 + 500 - 20 + 5 + 36 + 1
 = 2524;
 2524 / 7 = 360……4.这和实际是一致的。
 公式(5)已经是从年、月、日来算星期几的公式了,但它还不是最简练的,对于年份的处理还有改进的方法。我们先来用这个公式算出每个世纪第一年3月1日的星期,列表如下:
 年份: 1(401,801,…,2001) 101(501,901,…,2101)
 --------------------------------------------------------------------
 星期: 4 2
 ====================================================================
 年份:201(601,1001,…,2201) 301(701,1101,…,2301)
 --------------------------------------------------------------------
 星期: 0 5
 可以看出,每隔四个世纪,这个星期就重复一次。假如我们把301(701,1101,…,2301)年3月1日的星期数看成是-2(按数论中对余数的定义,-2和5除以7的余数相同,所以可以做这样的变换),那么这个重复序列正好就是一个4,2,0,-2的等差数列。据此,我们可以得到下面的计算每个世纪第一年3月1日的星期的公式:
 W = (4 - C mod 4) * 2 - 4. (6)
 式中,C是该世纪的世纪数减一,mod表示取模运算,即求余数。比如,对于2001年3月1日,C=20,则:
 W = (4 - 20 mod 4) * 2 - 4
 = 8 - 4
 = 4.
 把公式(6)代入公式(5),经过变换,可得:
 (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] ≡ (4 - C mod 4) * 2 - 1 (mod 7). (7)
 因此,公式(5)中的(Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400]这四项,在计算每个世纪第一年的日期的星期时,可以用(4 - C mod 4) * 2 - 1来代替。这个公式写出来就是:
 W = (4 - C mod 4) * 2 - 1 + [13 * (M+1) / 5] + d. (8)
 有了计算每个世纪第一年的日期星期的公式,计算这个世纪其他各年的日期星期的公式就很容易得到了。因为在一个世纪里,末尾为00的年份是最后一年,因此就用不着再考虑“一百年不闰,四百年又闰”的规则,只须考虑“四年一闰”的规则。仿照由公式(1)简化为公式(2)的方法,我们很

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/8/8

下载地址 WORD格式全文下载链接(充值:元)


免费毕业论文--万年历设计(三)......
论文人工降重
本论文《免费毕业论文--万年历设计(三)》在电子专业免费论文栏目,由电气工程论文网整理,转载请注明来源 www.dqlunwen.top 更多论文,请点电气工程论文查看
上一篇:免费毕业论文--基于单片机的LED汉.. 下一篇:免费毕业论文--点阵电子显示屏

点击查看关于 免费 毕业论文 --万年历 设计 的相关论文题目 2010-03-19 11:12:05【返回顶部】
联系方式

相关栏目

光机电应用技术
机电一体化
应用电子技术
电子信息工程技术
自动化免费论文
自动化专业毕业论文
电子专业免费论文
电子机电毕业论文
电气工程免费论文
测控技术与仪器
电气工程原创论文
电子通信论文
电气自动化开题
电子机电开题报告
电子通信免费论文
PLC相关外文翻译
电子机电信息外文翻译
电子通信外文翻译
联系方式
电子信息工程论文下载
电气工程论文下载


联系方式


电气工程论文网提供电气工程论文范文,电气工程毕业论文,网站永久域名www.dqlunwen.top 

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2022 电气工程论文网 版权所有