1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问 题。C语言解析
时间: 2023-09-10 18:07:39 浏览: 85
1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年的问题。
以下是一个计算日期在本年中是第几天的示例代码:
```c
#include <stdio.h>
struct date {
int year;
int month;
int day;
};
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int get_day_of_year(struct date d) {
int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int day_of_year = d.day;
for (int i = 1; i < d.month; i++) {
day_of_year += days_in_month[i];
}
if (d.month > 2 && is_leap_year(d.year)) {
day_of_year += 1;
}
return day_of_year;
}
int main() {
struct date d = {2021, 3, 15};
int day_of_year = get_day_of_year(d);
printf("Day of year: %d\n", day_of_year);
return 0;
}
```
该代码使用一个 `date` 结构体来表示日期,并定义了一个 `is_leap_year` 函数来判断是否为闰年。然后,使用一个 `get_day_of_year` 函数来计算日期在本年中的天数。在 `get_day_of_year` 函数中,首先定义了一个 `days_in_month` 数组来存储每个月的天数。然后,使用一个循环来计算月份之前的天数,并检查是否为闰年来处理二月份的天数。最后,返回计算出的天数。
在 `main` 函数中,创建一个 `date` 结构体并调用 `get_day_of_year` 函数来计算日期在本年中的天数,然后打印结果。
阅读全文