首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。 下面是应该考虑的提示,该如何处理

2013-09-11 
1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。下

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

热点排行