实现一个函数GetDaysOfYear,该函数接收三个int类型参数年月日,返回该日期是今年的第几天。
在main函数输入一个日期,然后调用该函数,输出该日期是今年的第几天。注意考虑闰年和非闰年。
思路:
1、为了计算简单,先用数组把每个月的天数保存起来
2、循环先求出前month-1月的天数之和
3、再加上该月的天数day
4、最后返回时注意:如果月份超过2,并且今年是闰年,范围时需要多加上1天,因为闰年2月份是29天
主函数
int main()
{
int y;
int m;
int d;
printf("请输入年、月、日:");
scanf("%d %d %d", &y, &m, &d);
GetDaysOfYear(y, m, d);
printf("今天是今年的第%d天\n", GetDaysOfYear(y,m,d));
return 0;
}
GetDaysOfYear
int GetDaysOfYear(int year, int month, int day)
{
int mon[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int sum = 0;
if ((year % 4 == 0 && year % 100 != 0 )|| year % 400 == 0)
{
for (int i = 0; i < month; i++)
{
if (month == 2)
{
sum = sum + mon[i] + 1;
}
else
{
sum = mon[i];
}
}
return sum + day;
}
else
{
for (int i = 0; i < month; i++)
{
sum += mon[i];
}
return sum + day;
}
}