b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

黄历算法_万年历算法_农历万年历算法(32)

电脑杂谈  发布时间:2017-01-16 03:03:28  来源:网络整理

case 1:e=d;break;case 2:e=31+d;break;case 3:e=59+d;break;case 4:e=90+d;break;case 5:e=120+d;break;case 6:e=151+d;break;case 7:e=181+d;break;case 8:e=212+d;break;case 9:e=243+d;break;case 10:e=273+d;break;case 11:e=304+d;break;case 12:e=334+d;break;default:return;}

if(y%4==0&&y%100!=0||y%400==0)if(m>2)++e;--y;

以下是这种算法的C语言程序: #include char

*name[]={"SUN","MON","THU","WED","THU","FRI","SA

收稿日期:2007-3-20

作者简介:张剑锋 男(1981-) 河南农业职业学院 教师 (451450) 研究方向:计算机科学技术

144中 国 水 运第5卷t=y+y/4-y/100+y/400+e;f=t%7;

printf("TODAY IS %s\n",name[f]); }

到此,似乎是问题基本都解决了。

我们先不说这个算法本身,我们再来了解一下历法的知识。

国际上使用的历法有几十种,其中最主要的有公历、回历和佛历,即所谓三大历法。不管是哪种历法,无非是对年月日的安排。这些安排主要依据天体的运动。

西方历法的第一次改革是罗马朱利乌斯·凯撒大帝引进的。他采用的四年一闰的闰年方式。由于一个太阳年不刚好是365.25天,而是 365.242199…天。到16世纪,每年11分14秒的误差已经累积成10天,也就是历法上多了10天。于是教皇格利戈里八世进行了一次校正。他在1582年2月24日以教皇训令颁布,将1582年10月5日至14日抹掉,并且对原来的闰年方法进行了校正。经过校正的历法叫格利戈里历法,也就是我们现在用的公历。1752年,英国人决定采用格利戈里历法,不过从1582年到那时,历法又多出了1天,所以英国议会在1752年作出决定,抹掉11天—1752年9月3日至13日。

这是怎么搞的,我们不是说过这样一个事实:从公元元年一月一日开始到现在,每一天都是连续的,而每个星期有七天,也是连续的,也就是说日期和星期是的,没有断档现象。现在居然又出现了特殊状况,我们以前的算法都是错的。

不过一个简单的方法就可以证明确实存在着断档—用Linux的cal命令。启动你的Linux在#提示符下输入

cal 9 1752 你会看到:

September 1752

Su Mo Tu We Th Fr Sa1 2 14 15 1617 18 19 20 21 22 23 24 25 26 27 28 29 30 有趣吧一个只有19天的九月。

那我们的算法也要跟着要大变身了。不用着急,我们分析一下当前的情况:就是在原来的算法的基础上,出现了一个比较特殊的1752年,我们的就针对这个特殊的地方进行局部的调整,看看有什么可以办法解决这个问题。

不妨作如下演算:为了一致起见,采用一、二月作为上年的十三、十四月。采用查表的方法建表,并对7取模(表一),再建立函数值表(表二),很显然二者是相同的。

三月 0 0 四月 31 3 五月 61 5 六月 92 1 七月 122 3 八月 153 6


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26593-32.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...