三月 0 四月 3 五月 5 六月 1 七月 3 八月 6
T"};
void main(){ int D,M,Y,A; printf("Day: "); scanf("%d",&D); printf("Month: "); scanf("%d",&M); printf("Year: "); scanf("%d",&Y); if ((M == 1) || (M == 2))
{/*一月、二月当作前一年的十三、十四月*/M += 12;Y--; }
if ((Y
/*判断是否在1752年9月3日前*/
A = (D + 2*M + 3*(M+1)/5 + Y + Y/4 +5) % 7; /*1752年9月3日前的公式*/
else A = (D + 2*M + 3*(M+1)/5 + Y + Y/4 - Y/100 + Y/400) % 7;
/*1752年9月3日后的公式*/ printf("TODAY IS %s\n",name[f]); } 参考文献
[1] 严蔚敏、吴伟民.数据结构.[M].北京:清华大学出版
社.1992.
[2] 网冠科技.C语言时尚编程百例.[M].北京:机械工业出
版社.2004.九月 184 2 十月 214 4 十一月 十二月 十三月 十四月
九月 2 十月 4
十一月 十二月 十三月 十四月
0 2 5 1
245 0 275 2 306 5 337 1
表一表二
在处理闰年2月29日的问题上,也有两种方法,第一:把二月排在一年的最后,管他闰不闰,反正是最后一天,这种算法设计的简洁、优美。第二:加了一个if分支,简单易懂,直观有效,且效率并不差。
好了,该解决这个“历史遗留问题”了。其实,并没有什么数学公式能算出指定日期是星期几,我们可以试着拼凑一个,不过何必呢?加个if分支不就解决问题了吗?下面就可得到突破1752年9月14日日期限制的C语言程序。
/*假设输入的是正确的日期*/ #include char
*name[]={"SUN","MON","THU","WED","THU","FRI","SA
附录一
《神宗实录》一
(万历皇帝于1590年8月25日与申时行等召对纪录。全文照《神宗实录》卷225排印)
是日,上御门毕,召辅臣时行等见于皇极门暖阁。
上出陕西巡抚赵可怀奏报虏情本手授时行曰:“朕近览陕西总督抚梅友松等所奏。说虏王引兵过河,侵犯内地,这事情如何?”时行等对:“近日洮州失事,杀将损军,臣等正切忧虑,伏蒙圣问,臣等敢以略节具陈:洮河边外,都是番族。番族有两样。中茶纳马的是熟番,其余的是生番。先年虏骑不到,只是防备番贼,所以武备单虚,仓猝不能堵遏。如今虏王过河,是被火落赤勾引,多为抢番,又恐中国救护,故声言内犯。然虏情狡诈,不可不防。”上曰:“番人也是朕之赤子。番人地方都是祖宗开拓的封疆。督抚官奉有敕书,受朝廷委托,平日所干何事?既不能预先防范,到虏酋过河,才来奏报。可见边备废弛。皇祖时各边失事,督 206
抚官都拿来重处。朝廷自有法度。”时行等对:“皇上责备督抚不能修举边务,仰见圣明英断,边臣亦当心服。如今正要责成他选将练兵,及时整理。”
上曰:“近时督抚等官平日把将官凌虐牵制,不得展布,有事却才用他。且如各边,但有功劳,督抚有升有赏,认做己功。及失事便推与将官,虚文搪塞。”时行等对:“各边文武将吏,各有职掌,如总督巡抚,只是督率调度。若临战阵定用武官,自总兵以下,有副总兵、有参将、游击、守备各分信地,如有失事,自当论罪。”上曰:“古文臣如杜预,身不跨鞍,射札。诸葛亮纶巾羽扇,都能将兵立功,何必定是武臣?”时行等对:“此两名臣古来绝少,人才难得。臣等即当传与兵部,转谕督抚诸臣,尽心经理,以纾皇上宵旰之忧。”
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26593-33.html
人家十几年前的军舰区域防空能力都远超052D
将来