typedef struct date {
int year;
int month;
int day;
}Date;
int days(Date date) {
int totalDays = 0;
BOOL isLeapYear = 0;
if (date.year % 400 == 0 || (date.year % 4 == 0 && date.year % 100 != 0)) {
isLeapYear = 1;
}
if (date.month == 1) {
totalDays = date.day;
} else if (date.month == 2) {
totalDays = 31 + date.day;
} else if (date.month == 3) {
if (isLeapYear) {
totalDays = 31 + 29 + date.day;
} else {
totalDays = 31 + 28 + date.day;
}
} else if (date.month == 4) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + date.day;
} else {
totalDays = 31 + 28 + 31 + date.day;
}
} else if (date.month == 5) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + date.day;
}
} else if (date.month == 6) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + date.day;
}
} else if (date.month == 7) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + 30 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + 30 + date.day;
}
} else if (date.month == 8) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + 30 + 31 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + date.day;
}
} else if (date.month == 9) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + date.day;
}
} else if (date.month == 10) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date.day;
}
} else if (date.month == 11) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date.day;
}
} else if (date.month == 12) {
if (isLeapYear) {
totalDays = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date.day;
} else {
totalDays = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date.day;
}
}
return totalDays;
}//计算该日在本年中为第几天
Date nowDay = {2014, 7, 24};
int totalDays = days(nowDay);
printf("%d年%d月%d日是本年的第%d天\n", nowDay.year, nowDay.month, nowDay.day, totalDays);