定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。。 输入 年月日 输出 当年第几天C++
时间: 2023-09-10 17:07:29 浏览: 88
以下是一个C++程序,可以实现计算一个日期在本年中是第几天,并考虑闰年问题:
```cpp
#include <iostream>
using namespace std;
struct Date {
int year;
int month;
int day;
};
int days_in_month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 存储每个月的天数
bool is_leap_year(int year) { // 判断是否是闰年
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int get_days_in_year(int year, int month, int day) { // 计算当年第几天
int days = 0;
for (int i = 1; i < month; i++) {
days += days_in_month[i];
}
days += day;
if (is_leap_year(year) && month > 2) { // 如果是闰年并且月份大于2月,需要加上一天
days++;
}
return days;
}
int main() {
Date d;
cout << "请输入年月日,以空格分隔:" << endl;
cin >> d.year >> d.month >> d.day;
int days_in_year = get_days_in_year(d.year, d.month, d.day);
cout << d.year << "年" << d.month << "月" << d.day << "日是当年的第" << days_in_year << "天" << endl;
return 0;
}
```
运行程序,可以得到类似如下的输出:
```
请输入年月日,以空格分隔:
2021 4 1
2021年4月1日是当年的第91天
```
需要注意的是,上述代码中假设了输入的日期合法,没有进行输入格式和范围的校验。如果需要更严格的校验,可以加入相应的代码。
阅读全文