读书人

1.编程序实现:输入一个年份y求出从

发布时间: 2013-09-11 16:28:43 作者: rapoo

1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。 下面是应该考虑的提示
疑问1:闰年的规律是不是四年一闰?

 

答:四年一闰是儒略历(儒略也就是凯撒大帝)的置闰规则。我们现在使用的是格里高利历,置闰规则是每400年97闰。

 

疑问2:公元1年1月1日是星期几呢?

 

答:星期一。

 

疑问3:据说从儒略历改为格里高利历时,将1582年10月4日的下一天定为格里高利历的10月15日,中间销去了10天,这会不会影响星期几的计算?

 

答:这个调整是对儒略历误差的纠正,并不会影响总天数和星期几的计算。

 

疑问4:这里计算总天数,好像要用到循环程序吧?

 

答:其实根据闰年的置闰规则,不使用循环也可以计算出来总天数。当然,你想使用循环编写该程序也是可以的。


[解决办法]

C/C++ code
#include <iostream>using namepace std;bool is_leap_year(int i){  return i%4==0&&i%100!=0||i%400==0;}int differ(int year){ int day_in_year=0; int days[12]={31,0,31,30,31,30,31,31,30,31,30,31}; for(int i=1;i<year;i++) {    day_in_year=day_in_year+365+is_leap_year(i);     } return day_in_year;}int main(){  cout<<"Plese input the year"<<endl;  int year;  cin>>year;  cout<<"距离公元1年1月1日"<<differ(year)<<"天"<<endl;  cout<<year<<"年1月1日是星期"<<differ(year)%7+1<<endl;  return 0;}
我的异常网推荐解决方案:程序员的一天,http://www.myexception.cn/other/1391144.html

读书人网 >C语言

热点推荐