编写一个程序,只要输入年月日,就能回答那天是星期几。
[实验提示]
1、 已知公元1年1月1日是星期一
2、 算法提示:如果输入的是2006年3月12日,计算方法是
(1) 先计算从公元0001年初(0001-1-1)到2005年末(2005-12-31)共多少天,注意其中有闰年,闰年是366天,平年是365天。闰年的判断条件满足(见教材例3.8题):
(( year%4==0 && year%100!=0 )!!(year%400==0))
(2) 然后再计算2006年1月1日到2006-3-12是多少天。注意同样判断本年度是否闰年,即二月份是28天还是29天。
(3) 上述两部分相加即从公元0001年初(0001-1-1)到2006年末(2006-3-12)的天数,用该天数模7(total%7)即得到星期数。
2、用户多次循环输入数据并计算可采用while语句实现:
//首先输入三个数据:
cout<< "please enter year month day: "
cin>>year>> month>>day; //首先输入三个数: 年 月 日
while(year!= 0 && month!=0 && month!= 0)
{
…… //具体计算语句
//本次循环结束前再次输入三个数据(年 月 日),为下次循环计算做准备
cout<< "please enter year month day: "
cin>>year>> month>>day;
}
[测试数据]
1、1年1月1日是星期一
2、2年1月1日是星期二
3、用上机日期
4、2000年1月1日是星期六