首先来判断是否为闰年(365与366之分),然后在判断月份,加上之前月份的天数,再加上日数即为本年第几天。
#include <stdio.h>
#include <math.h>
int main()
{
int YearMonthDay();
YearMonthDay();
return 0;
}
int YearMonthDay()
{
printf("请输入年、月、日:");
int a, b, c, i, t=0, m[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }, n[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
scanf("%d %d %d", &a, &b, &c);
if (a % 400 == 0 || a % 4 == 0 && a % 100 != 0)
{
for (i = 0; i < 12; i++)
{
if ((b-1) != i)
t = t+n[i];
else
break;
}
}
else
{
for (i = 0; i < 12; i++)
{
if ((b-1) != i)
t = t + m[i];
else
break;
}
}
printf("改天是%d年的第%d天。\n", a, t + c);
}