用C++定义一个结构体类型(包括年、月、日)。编写程序读入“年-月-日”格式的日期,并计算该日期是该年中的第几天。注意闰年问题
时间: 2023-12-03 21:06:58 浏览: 73
以下是C++代码示例:
```cpp
#include <iostream>
using namespace std;
struct Date {
int year;
int month;
int day;
};
int daysOfMonth(int year, int month) {
switch (month) {
case 2:
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 29; // 闰年2月有29天
} else {
return 28; // 平年2月有28天
}
case 4:
case 6:
case 9:
case 11:
return 30; // 4月、6月、9月、11月有30天
default:
return 31; // 其他月份有31天
}
}
int getDayOfYear(Date date) {
int days = 0;
for (int i = 1; i < date.month; i++) {
days += daysOfMonth(date.year, i);
}
days += date.day;
return days;
}
int main() {
Date date;
cout << "请输入日期(格式为年-月-日):" << endl;
scanf("%d-%d-%d", &date.year, &date.month, &date.day);
int days = getDayOfYear(date);
cout << date.year << "年" << date.month << "月" << date.day << "日是该年的第" << days << "天" << endl;
return 0;
}
```
在上面的代码中,我们首先定义了一个 `Date` 结构体类型,表示年、月、日。然后我们实现了一个 `daysOfMonth` 函数,用于计算每个月份的天数,注意闰年的情况。接着,我们实现了一个 `getDayOfYear` 函数,用于计算一个日期是该年的第几天。最后,在 `main` 函数中读入日期并输出该日期是该年的第几天。
阅读全文