日期类运算符重载 描述 设计日期类Date,成员数据包含年(year)月(month)日(day)。 main函数已给定,提交时只需要提交main函数外的代码部分。 #include<iostream> using namespace std; //你提交的代码在这里 int main() { Date d1; cout<<"Show object d1:"<<d1<<endl; int year,month,day; cin>>year>>month>>day; Date d2(year,month,day); cout<<"Show object d2:"<<d2<<endl; cin>>year>>month>>day; d1.Set(year,month,day); cout<<"Reset and Show object d1:"<<d1<<endl; int n; n=d2-d1; cout<<d2<<" - "<<d1<<" = "<<n<<endl; cin>>n; cout<<d1<<" + "<<n<<" = "; d2=d1+n; cout<<d2<<endl; cout<<d1<<" - "<<n<<" = "; d1=d1-n; cout<<d1<<endl; return 0; } 输入 3行,第1,2行,每行3个整数,分别表示年、月和日;第3行是一个非负整数。数据保证合法。 输出 按照样例输出格式输出。 输入样例 1 2023 1 5 2023 7 8 100 输出样例 1 Show object d1:2023/5/20 Show object d2:2023/1/5 Reset and Show object d1:2023/7/8 2023/1/5 - 2023/7/8 = -184 2023/7/8 + 100 = 2023/10/16 2023/7/8 - 100 = 2023/3/30
时间: 2024-02-21 21:00:32 浏览: 65
```cpp
#include<iostream>
using namespace std;
class Date {
private:
int year, month, day;
public:
Date() {
year = 2023;
month = 5;
day = 20;
}
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
void Set(int y, int m, int d) {
year = y;
month = m;
day = d;
}
friend ostream& operator<<(ostream& out, const Date& dt) {
out << dt.year << "/" << dt.month << "/" << dt.day;
return out;
}
int operator-(const Date& dt) const {
int d1 = year * 365 + month * 30 + day;
int d2 = dt.year * 365 + dt.month * 30 + dt.day;
return d2 - d1;
}
Date operator+(const int& n) const {
int d = year * 365 + month * 30 + day + n;
int y = d / 365;
int m = (d - y * 365) / 30;
int d1 = d - y * 365 - m * 30;
return Date(y, m, d1);
}
Date operator-(const int& n) const {
int d = year * 365 + month * 30 + day - n;
int y = d / 365;
int m = (d - y * 365) / 30;
int d1 = d - y * 365 - m * 30;
return Date(y, m, d1);
}
};
int main() {
Date d1;
cout << "Show object d1:" << d1 << endl;
int year, month, day;
cin >> year >> month >> day;
Date d2(year, month, day);
cout << "Show object d2:" << d2 << endl;
cin >> year >> month >> day;
d1.Set(year, month, day);
cout << "Reset and Show object d1:" << d1 << endl;
int n;
n = d2 - d1;
cout << d2 << " - " << d1 << " = " << n << endl;
cin >> n;
cout << d1 << " + " << n << " = ";
d2 = d1 + n;
cout << d2 << endl;
cout << d1 << " - " << n << " = ";
d1 = d1 - n;
cout << d1 << endl;
return 0;
}
```
阅读全文