C语言/* 函数sum_day:计算日期 */
时间: 2023-09-01 16:06:20 浏览: 135
C语言100例 题目
以下是一个计算日期的示例代码:
```c
#include <stdio.h>
struct Date {
int year;
int month;
int day;
};
int isLeapYear(int year); // 判断是否为闰年
int getDaysInMonth(int year, int month); // 获取该月的天数
int sum_day(struct Date date); // 计算日期
int main() {
struct Date date = {2021, 8, 18};
int days = sum_day(date);
printf("%d年%d月%d日是该年的第%d天\n", date.year, date.month, date.day, days);
return 0;
}
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int getDaysInMonth(int year, int month) {
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月的天数
if (month == 2 && isLeapYear(year)) {
return 29;
} else {
return daysInMonth[month - 1];
}
}
int sum_day(struct Date date) {
int days = 0;
for (int i = 1; i < date.month; i++) {
days += getDaysInMonth(date.year, i);
}
days += date.day;
return days;
}
```
解释一下,首先定义了一个 `Date` 结构体用来存储日期信息。然后定义了两个函数,一个是判断闰年的函数 `isLeapYear`,另一个是获取该月的天数的函数 `getDaysInMonth`。在 `getDaysInMonth` 函数中,先定义了数组 `daysInMonth` 存储每个月的天数,然后根据是否为闰年来修改二月的天数。最后根据月份返回天数。在 `sum_day` 函数中,使用循环计算出累加到该月的天数,最后再加上当月的天数。
阅读全文