用C++设计一日期类 Date,能够在实例化后给日期对象赋值,能够输出对象的日期。为 Date 类 设计一友元函数,能够求得两个日期的相差天数(为简化起见,假设每年按 365 天计算,每 月按 30 天计算)。 指导: (1)定义日期类 Date,包含 3 个私有数据成员 year、month、day。 (2)Date,包含 2 个公有成员函数 Date(int y=2000,int m=1,int d=1)和 ShowDate()。 (3)为 Date 类设计一友元函数 friend int TD(Date a,Date b),计算两个日期的相差天数
时间: 2024-02-13 21:01:12 浏览: 81
C++实现日期类(Date)
5星 · 资源好评率100%
好的,我来一步步指导你完成这个问题。
首先,我们需要定义一个日期类 Date,它包含 3 个私有数据成员 year、month、day,以及 2 个公有成员函数 Date(int y=2000,int m=1,int d=1)和 ShowDate()。其中,构造函数 Date(int y=2000,int m=1,int d=1)用于实例化日期对象并给其赋值,而 ShowDate()函数用于输出日期对象的日期。代码如下:
```c++
class Date {
private:
int year;
int month;
int day;
public:
Date(int y=2000, int m=1, int d=1) {
year = y;
month = m;
day = d;
}
void ShowDate() {
cout << year << "-" << month << "-" << day << endl;
}
};
```
接下来,我们需要为 Date 类设计一友元函数 friend int TD(Date a,Date b),用于计算两个日期的相差天数。我们可以将日期转化为天数,然后求其差值。代码如下:
```c++
class Date {
private:
int year;
int month;
int day;
public:
Date(int y=2000, int m=1, int d=1) {
year = y;
month = m;
day = d;
}
void ShowDate() {
cout << year << "-" << month << "-" << day << endl;
}
friend int TD(Date a, Date b) {
int days_a = a.year*365 + a.month*30 + a.day;
int days_b = b.year*365 + b.month*30 + b.day;
return abs(days_a - days_b);
}
};
```
最后,我们可以在主函数中创建两个日期对象,调用 ShowDate()函数输出它们的日期,以及调用 TD()函数计算它们的相差天数。代码如下:
```c++
int main() {
Date d1(2021, 10, 1);
Date d2(2022, 3, 15);
d1.ShowDate();
d2.ShowDate();
cout << "相差天数:" << TD(d1, d2) << endl;
return 0;
}
```
输出结果如下:
```
2021-10-1
2022-3-15
相差天数:165
```
希望这个指导对你有所帮助!
阅读全文