PTA——计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
思路:
根据题意需要用到switch选择结构。首先按照二月是28天来计算,最后判断是否是闰年,如果是闰年,并且月份大于2,则需要最后的总天数加上1。
此题代码如下(还是感觉很麻烦)
#include<stdio.h>
int main()
{
int x, y, z, sum;
scanf_s("%d/%d/%d", &x, &y, &z);//x年y月z日
switch (y)
{
case 2:sum = 31; break;//不计算本月的天数,前面已累计的天数
case 3:sum = 59; break;
case 4:sum = 90; break;
case 5:sum = 120; break;
case 6:sum = 151; break;
case 7:sum = 181; break;
case 8:sum = 212; break;
case 9:sum = 243; break;
case 10:sum = 273; break;
case 11:sum = 304; break;
case 12:sum = 334; break;
}
if ((y > 2) && ((x % 4 == 0 && x % 100 != 0) || x % 400 == 0))
//闰年的判断
printf("%d", sum + z + 1);
else printf("%d", sum + z);
return 0;
}