c和c++的一些训练题(7)(编排日历)
来源:互联网 发布:梦幻西游网络乾坤 编辑:程序博客网 时间:2024/05/14 08:13
问题的提出:日历的编排是每400年一个大循环周期,即今年的月、日、星期几和400年前的完全一样。现行天文历法根据天体运行规律,取每年365.2425天。这样,每400年共有365.2425×400=146097天。如果以365天作为一年,每400年就少了0.2425×400=97天。这97天要靠设置闰年(每年366)天来凑齐,所以,每400年要设置97个闰年。
编程思路:按照以上背景知识可得判断闰年的规律:某年年份如果能被4整除但不能被100整除,或者能被400整除则是闰年。由此规则可推得计算万年历的公式:
s=X-1+(X-1)/4-(X-1)/100+(x-1)/400+c 上式中:X为公元年数(如2003年);C 为从元旦起,到要算的那天总数(如2003年3月23日,C=31+28+23=82)。S/7余数是星期几。
这个题目我理解错了,我编了这么一个程序:输入年月日,输出这个日期是星期几,利用了上面的公式,可是没有完成上面万年历的编写,也贴出来吧。
代码:
// test5.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;int IsLeap(int y){if(y%4==0){if(y%100==0){if(y%400==0) {return 1;}else{return 0;}}else{return 0;}}else{return 0;}}int _tmain(int argc, _TCHAR* argv[]){cout<<"请输入需要查询的日期:"<<endl;int year, month, day;cout<<"年份: ";cin>>year;cout<<"月份: ";cin>>month;cout<<"日期: ";cin>>day;int sum=0;int c=0;int r;if(IsLeap(year)){r=0;}else{r=1;}switch(month){case 1: c=day;break;case 2:c=day+31;break;case 3:c=day+31+28+r;break;case 4:c=day+31+28+r+31;break;case 5:c=day+31+28+r+31+30;break;case 6:c=day+31+28+r+31+30+31;break;case 7:c=day+31+28+r+31+30+31+30;break;case 8:c=day+31+28+r+31+30+31+30+31;break;case 9:c=day+31+28+r+31+30+31+30+31+31;break;case 10:c=day+31+28+r+31+30+31+30+31+31+30;break;case 11:c=day+31+28+r+31+30+31+30+31+31+30+31;break;case 12:c=day+31+28+r+31+30+31+30+31+31+30+31+30;break;default:cout<<"您输入的月份有误,请检查后输入。"<<endl;}sum=year-1+(year-1)/100+(year-1)/400+c;int week;week=sum%7;char *weeks[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};cout<<year<<"年"<<month<<"月"<<day<<"日是"<<weeks[week-1]<<endl;system("pause");return 0;}结果:
0 0
- c和c++的一些训练题(7)(编排日历)
- c和c++的一些训练题5(汉诺塔)
- c和c++的一些训练题(12)(继承问题)(子随父姓)
- c和c++的一些训练题(14)(公司工资管理系统)(多态)
- c和c++的一些训练题(1)(冒泡法排序运动员成绩)
- c和c++的一些训练题(2)(复制类)
- c和c++的一些训练题(3)(8皇后游戏)
- c和c++的一些训练题(4)(小学生比较国家面积)
- c和c++的一些训练题(6)(杨辉三角)
- c和c++的一些训练题(8)(打印心形)
- c和c++的一些训练题(9)(学生成绩管理系统)
- c和c++的一些训练题(10)(打印螺旋方阵)
- c和c++的一些训练题(13)(掷双骰)
- c和c++的一些训练题(11)(二分查找法和顺序查找法)
- 2009年的日历(C语言)
- C语言版的日历
- c++:日历的实现
- 循环赛日程编排c代码
- jquery autocomplete 怎样实现动态绑定
- ABAP 时间月份的F4帮助
- 彩票案例-导航栏属性控制-字体,颜色等
- 常见异常备忘录
- 日经社説 20150317 免震への信頼揺るがす問題だ
- c和c++的一些训练题(7)(编排日历)
- 做Gabor滤波器图片
- 淘宝运营四要素
- 服务治理
- SoftReference软引用
- 彩票案例-如何做代码适配
- Java加密技术(九)——初探SSL
- 彩票案例-PCH文件
- 编程模式 - 网络