定义一个表示日期的结构体类型,输入一个日期,计算该日期为本年度的第几日
时间: 2023-11-28 14:04:11 浏览: 166
以下是一个C++的示例代码:
```cpp
#include <iostream>
using namespace std;
struct Date {
int year;
int month;
int day;
};
int getDayOfYear(Date date) {
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayOfYear = 0;
// 计算闰年
bool isLeapYear = false;
if (date.year % 4 == 0 && date.year % 100 != 0 || date.year % 400 == 0) {
isLeapYear = true;
}
// 计算本年度的第几日
for (int i = 0; i < date.month - 1; i++) {
dayOfYear += daysInMonth[i];
}
dayOfYear += date.day;
if (isLeapYear && date.month > 2) {
dayOfYear++;
}
return dayOfYear;
}
int main() {
Date date;
cout << "请输入日期(格式:年 月 日):" << endl;
cin >> date.year >> date.month >> date.day;
int dayOfYear = getDayOfYear(date);
cout << "该日期为本年度的第 " << dayOfYear << " 天。" << endl;
return 0;
}
```
在这个示例代码中,我们定义了一个 `Date` 结构体,包含 `year`、`month` 和 `day` 三个成员变量,表示年、月、日。然后定义了一个 `getDayOfYear` 函数,用来计算输入日期为本年度的第几日。
在 `getDayOfYear` 函数中,我们首先定义了一个数组 `daysInMonth`,用来存储每个月的天数。然后通过判断输入日期所属年份是否为闰年,计算出二月份的天数。最后遍历输入日期的月份之前的所有月份,累加各个月份的天数,再加上输入日期的天数,就可以得到该日期为本年度的第几日。
在 `main` 函数中,我们首先读入用户输入的日期,然后调用 `getDayOfYear` 函数计算该日期为本年度的第几日,并输出结果。
阅读全文