/*Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者: 石尧
* 完成日期:2013 年11 月 08日
* 版 本 号:v1.0
*
* 问题描述:函数运用计算某年某月某日是本年的的多少天。
* 样例输入:1995 6 24.
* 样例输出:1995年6月24日是本年的第175天。
* 问题分析:函数内包含多个分函数。
*/#include <iostream>
using namespace std;
int time(int,int,int);
int main()
{
int year,month,day,t;
cout<<"请输入您需要的年月日。"<<endl;
cin>>year>>month>>day;
t=time(year,month,day);
cout<<year<<"年"<<month<<"月"<<day<<"日"<<"是本年的第"<<t<<"天"<<endl;
return 0;
}
int time(int year,int month,int day)
{
int t;
if(year%400==0||(year%4==0&&year%100!=0))
{
switch(month)
{
case 1:t=day;break;
case 2:t=day+31;break;
case 3:t=day+31+29;break;
case 4:t=day+31+29+31;break;
case 5:t=day+31+29+31+30;break;
case 6:t=day+31+29+31+30+31;break;
case 7:t=day+31+29+31+30+31+30;break;
case 8:t=day+31+29+31+30+31+30+31;break;
case 9:t=day+31+29+31+30+31+30+31+31;break;
case 10:t=day+31+29+31+30+31+30+31+31+30;break;
case 11:t=day+31+29+31+30+31+30+31+31+30+31;break;
case 12:t=day+31+29+31+30+31+30+31+31+30+31+30;break;
} return t;
}else
{
switch(month)
{
case 1:t=day;break;
case 2:t=day+31;break;
case 3:t=day+31+28;break;
case 4:t=day+31+28+31;break;
case 5:t=day+31+28+31+30;break;
case 6:t=day+31+28+31+30+31;break;
case 7:t=day+31+28+31+30+31+30;break;
case 8:t=day+31+28+31+30+31+30+31;break;
case 9:t=day+31+28+31+30+31+30+31+31;break;
case 10:t=day+31+28+31+30+31+30+31+31+30;break;
case 11:t=day+31+28+31+30+31+30+31+31+30+31;break;
case 12:t=day+31+28+31+30+31+30+31+31+30+31+30;break;
}
return t;
}
}
心得体会:这个程序好难,费了我好久时间。但老师说用循环更简单但我不会,求答案。