写在前面:目前还没学数组,学完来更新!
1、编写一个函数,功能为输入某年某月某日,判断这一天是这一年的第几天。
#include<iostream>
using namespace std;
int main()
{
int a, b, c,m,x;//a,b,c为年月日
cout << "请输入年、月、日" << endl;
cin >> a >> b >> c;
if (a % 4 == 0&&a%100!=0||a%400==0)
x = 29;//x为2月份天数
else
x = 28;//判断是否是闰年
switch (b)
{
case 1:m = c; break;//m为第几天
case 2:m = 31 + c; break;
case 3:m = 31 + x + c; break;
case 4:m = 62+ x + c; break;
case 5:m = 92 + x + c; break;
case 6:m = 123+ x + c; break;
case 7:m = 153 + x + c; break;
case 8:m = 184 + x + c; break;
case 9:m = 215 + x + c; break;
case 10:m = 245 + x + c; break;
case 11:m = 276 + x + c; break;
case 12:m = 306 + x + c; break;
}
cout << "是第" << m << "天";
return 0;
}
2、编写一个函数,功能是计算出某年的第某天的日期(年月日格式),例如,计算2014年的第100天日期是多少(结果为2014年4月10日)
#include<iostream>
using namespace std;
int main()
{
int a, b, x,m,n,p;//a,b是年,天数,x为2月份天数,n为日期
cout << "请输入年份、天数" << endl;
cin >> a >> b;
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)//判断是否为闰年
x = 29;
else
x = 28;
m = 1;//m为对应月份
p = b / 30;
/*想法:除去2月,其余月最少有30天,输入的天数除以30就能判断有几个整月,再加m(m = 1), 即这个天数所在的月份,
但要注意12月*/
if (b <= 31)
{
n = b;
m++;
}
else if (b <= 31 + x) { n = b - 31; m=m+p; }
else if (b <= 62 + x) { n = b - 31 - x; m=m+p; }
else if (b <= 92 + x) { n = b - 62 - x; m=m+p; }
else if (b <= 123 + x) { n = b - 92 - x; m=m+p; }
else if (b <= 153 + x) { n = b - 123 - x;m=m+p; }
else if (b <= 184 + x) { n = b - 153 - x;m= m+p; }
else if (b <= 215 + x) { n = b - 184 - x; m=m+p; }
else if (b <= 245 + x) { n = b - 215 - x; m=m+p; }
else if (b <= 276 + x) { n = b - 245 - x; m=m+p; }
else if (b <= 306 + x) { n = b - 276 - x; m=m+p; }
else if (b < 360) { n = b - 306 - x; m = m + p; }
/*当天数小于360时,除以30取整数是11,而360之后取整数是12,应该从这再分情况*/
else if (b <= 337 + x) { n = b - 306 - x; m=p; }
cout << a << "年" << m << "月" << n << "日" << endl;
return 0;
}