7-19 计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
输入样例1:
2009/03/02
输出样例1:
61
输入样例2:
2000/03/02
输出样例2:
62
代码思路:
//先判断是否为闰年
// ->如果是闰年,2月有29天
// ->如果不是闰年,2月有28天
//然后判断当前月份之前有多少天, 可以将当前月份之前的天数放入数组中
// 1月31天;2月29天;3月31天;4月30天;5月31天;6月30天;7月31天;8月31天;9月30天;10月31天;11月30天
// 1月31天;2月28天;3月31天;4月30天;5月31天;6月30天;7月31天;8月31天;9月30天;10月31天;11月30天
//最后加上当月的天数
代码:
#include <stdio.h>
int main()
{
int year, month, day;
int sum;
scanf("%d/%d/%d", &year, &month, &day);
int leap[20] = {0,31,60,91,121,152,182,213,244,274,305,335};
int noleap[20] = {0,31,59,90,120,151,181,212,243,273,304,334};
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
sum = leap[month - 1] + day;
}
else
{
sum = noleap[month - 1] + day;
}
printf("%d", sum);
return 0;
}