定义一个结构体类型表示日期,包含年、月、日,在主函数中声明一个日期类型变量,输入年、月、日,计算该日期是当年的第几天。(注意闰年)c++ 结构体与函数
时间: 2023-12-12 17:15:23 浏览: 102
C++自定义函数判断某年某月某日是这一年中第几天
5星 · 资源好评率100%
好的,我理解了你的问题!下面是 C++ 的代码实现:
```c++
#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 dayOfYear(Date date) {
int daysOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int days = 0;
for (int i = 0; i < date.month - 1; i++) {
days += daysOfMonth[i];
}
days += date.day;
if (date.month > 2 && isLeapYear(date.year)) {
days += 1;
}
return days;
}
int main() {
Date date;
cout << "请输入年份:";
cin >> date.year;
cout << "请输入月份:";
cin >> date.month;
cout << "请输入日期:";
cin >> date.day;
int days = dayOfYear(date);
cout << "该日期是当年的第" << days << "天。" << endl;
return 0;
}
```
这段代码定义了一个 `Date` 结构体来表示日期,其中包含了年、月、日三个属性。我们还定义了一个 `isLeapYear` 函数来判断是否是闰年,以便计算每个月的天数。最后,我们定义了一个 `dayOfYear` 函数来计算该日期是当年的第几天。在 `main` 函数中,我们先输入年、月、日,然后调用 `dayOfYear` 函数计算该日期是当年的第几天,并输出结果。
阅读全文