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 }