请在以上代码基础上设置一个函数IsValidDate,返回对象自身存储日期是否为合理日期(考虑年月日范围,包括闰年) 并编写main函数,从键盘输入一个日期,显示其是否为合理日期。
时间: 2024-04-10 16:28:00 浏览: 104
在上述代码基础上,我们可以添加一个名为`IsValidDate`的成员函数来判断对象存储的日期是否为合理日期。以下是修改后的代码示例:
```cpp
#include <iostream>
class Date {
private:
int year;
int month;
int day;
public:
Date() {
year = 1900;
month = 1;
day = 1;
}
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
void setYear(int y) {
year = y;
}
void setMonth(int m) {
month = m;
}
void setDay(int d) {
day = d;
}
int getYear() const {
return year;
}
int getMonth() const {
return month;
}
int getDay() const {
return day;
}
bool IsValidDate() const {
if (year < 1900 || year > 9999)
return false;
if (month < 1 || month > 12)
return false;
if (day < 1 || day > 31)
return false;
if (month == 2) { // February
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { // Leap year
if (day > 29)
return false;
} else {
if (day > 28)
return false;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) { // April, June, September, November
if (day > 30)
return false;
}
return true;
}
};
int main() {
int year, month, day;
std::cout << "请输入年份:";
std::cin >> year;
std::cout << "请输入月份:";
std::cin >> month;
std::cout << "请输入日期:";
std::cin >> day;
Date date(year, month, day);
std::cout << "输入的日期是否为合理日期:";
if (date.IsValidDate()) {
std::cout << "是" << std::endl;
} else {
std::cout << "否" << std::endl;
}
return 0;
}
```
在上述代码中,我们添加了一个名为`IsValidDate`的成员函数,用于判断对象存储的日期是否为合理日期。在该函数中,我们首先检查年份是否在合理范围内(1900-9999),然后检查月份是否在合理范围内(1-12),最后根据每个月的天数进行检查,考虑了闰年的情况。
在`main`函数中,我们从键盘输入一个日期的年、月、日,并创建一个`Date`对象。然后调用`IsValidDate`函数来判断输入的日期是否为合理日期,并输出相应的结果。
希望这个例子能够满足你的需求!如果还有其他问题,请随时提问。
阅读全文