定义一个结构体变量(包括年、月日)。计算该日在本年中是第几天,注意闰年问题。
时间: 2023-09-03 10:15:07 浏览: 81
1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年的问题。
以下是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
struct Date {
int year;
int month;
int day;
};
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int getDayOfYear(Date date) {
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayOfYear = 0;
for (int i = 0; i < date.month - 1; i++) {
dayOfYear += daysInMonth[i];
}
dayOfYear += date.day;
if (isLeapYear(date.year) && date.month > 2) {
dayOfYear++;
}
return dayOfYear;
}
int main() {
Date date = {2021, 4, 15};
cout << "Day of year: " << getDayOfYear(date) << endl; // 输出 Day of year: 105
return 0;
}
```
首先定义了一个 `Date` 结构体,包括年、月、日三个成员变量。接着定义了一个 `isLeapYear` 函数用于判断是否为闰年,返回值为布尔类型。然后定义了 `getDayOfYear` 函数,该函数接收一个 `Date` 类型的参数,返回该日期在本年中是第几天。在函数中定义了一个 `daysInMonth` 数组,存储每个月的天数,然后遍历月份,累加天数。如果是闰年并且月份大于 2,那么天数加一。最后在 `main` 函数中测试了一下输出结果。
阅读全文