c语言定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问 题。 2
时间: 2023-09-10 22:07:31 浏览: 114
可以按照以下方式定义一个包含年、月、日的结构体:
```c
struct Date {
int year;
int month;
int day;
};
```
然后可以编写一个函数来计算该日期在本年中的天数:
```c
int dayOfYear(struct Date date) {
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int days = date.day;
for (int i = 1; i < date.month; i++) {
days += daysInMonth[i];
}
if ((date.year % 4 == 0 && date.year % 100 != 0) || date.year % 400 == 0) {
// Leap year, add an extra day in February
if (date.month > 2) {
days += 1;
}
}
return days;
}
```
这个函数首先定义了一个数组 `daysInMonth`,其中存储了每个月的天数。然后使用一个循环来计算给定日期之前的所有天数。最后,如果该年是闰年且月份大于2,则添加一个额外的日子。最后返回总天数。
可以在主函数中调用 `dayOfYear` 函数:
```c
int main() {
struct Date date = {2021, 5, 17};
int day = dayOfYear(date);
printf("Day of year: %d\n", day);
return 0;
}
```
运行结果为:
```
Day of year: 137
```
这意味着2021年的第137天是5月17日。