输入一个日期计算是今年的第几天
1 #include<stdio.h> 2 typedef struct { 3 unsigned int year, month, day; 4 }date; 5 unsigned int dayofyear(date d) 6 { 7 unsigned int leap = 0, total = 0; 8 unsigned int sum[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; 9 unsigned int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 10 if(d.year%400==0||(d.year%4==0&&d.year%100!=0)) 11 leap=1; 12 if(d.year > 0 && (d.month > 0 && d.month <= 12) && (d.day > 0 && d.day <= days[d.month-1] + leap)) { 13 total = sum[d.month - 1] + d.day; 14 if(d.month > 2) 15 total = total + leap; 16 } 17 return total; 18 } 19 int main(void) 20 { 21 date d; 22 printf(" please input year,month,day \n"); 23 scanf("%d,%d,%d",&d.year,&d.month,&d.day); 24 printf("It is the %dth day.",dayofyear(d)); 25 }