#include<stdio.h>
int M(int a, int b)//判断是几月
{
int result = 0;
if (a == 1 || a == 3 || a == 5 || a == 7 || a == 8 || a == 10 || a == 12)
{
result = 31;
}
if (a == 4 || a == 6 || a == 9 || a ==11)
{
result = 30;
}
if (b % 100 == 0)
{
if (b % 400 == 0)
{
if (a == 2)
{
result = 29;
}
}
}
else
{
if (b % 4 == 0)
{
result = 29;
}
else
{
result = 28;
}
}
return result;
}
int AddMonth(int i, int j)//计算日期前所有月的天数
{
int end = 0;
while (i != 0)
{
i--;
end = M(i, j) + end;
}
return end;
}
int main()
{
int year, month, day, sum;
printf("请输入某年某月某日:");
scanf_s("%d%d%d", &year, &month, &day);
sum = AddMonth(month, year) + day;
printf("%d年%d月%d日是%d年的第%d天",year, month, day, year, sum);
return 0;
}
这段代码过度冗长,亟待优化