思路是:如果是一月,直接加日子
如果是个二月,直接31加上日子
如果是其他的,用(month - 2)* 30 + x + 28 + 是否为闰年 + 日子
月份减去二对应的是除去二月和本月,x是大月的月数,28+是否为闰年 是二月天数,加上日子就是本年天数。
#include<stdio.h>
int judjeyear(int year);
int monthdays(int month);
int main (){
int time[3];
int i = 0;
int c;
while(scanf("%d", &time[i]) != EOF){
c = getchar();
++i;
}
int year = time[0];
int month = time[1];
int day = time[2]; //printf("%d\n",judjeyear(year));
if(month == 1)
printf("%d", day);
else if(month == 2){
printf("%d",monthdays(month) + day);
}
else
printf("%d", monthdays(month) + day + judjeyear(year));
}
int judjeyear(int year){
if(year % 4 == 0 && year %100 != 0 || year % 400 == 0)
return 1;
return 0;
}
int monthdays(int month){
extern year;
int x = 0;
int count = month - 1;
if(count == 1)
return 31;
else if(count > 1 && count <= 7)
while(count >= 1){
if(count % 2 != 0)
++x;
--count;
}
else{
x = 4;
while(count >= 8){
if(count % 2 == 0)
++x;
--count;
}
}
return (month - 2) * 30 + x + 28;
}