根据上面修改的类,继续添加成员函数,要求能进行日期相减得到相差的天数,日期可以加上一个数,得到新的日期. 为简化程序,设每个月都是30天. 提示: 增加成员函数 int subDate( Date d){……} Date addNum( int num){ …… }
时间: 2024-05-19 18:17:20 浏览: 77
编写一个友元函数,求两个日期之间相差的天数;
4星 · 用户满意度95%
好的,我会遵守您的要求进行回答。关于您的问题,根据您修改的类,可以添加如下两个成员函数:
1. int subDate(Date d):该函数可以计算该日期与给定日期d之间相差的天数,返回值为计算得到的天数。
2. Date addNum(int num):该函数可以将该日期加上一个整数num,得到一个新的日期,返回值为新的日期。
代码实现如下:
class Date {
private:
int year, month, day;
public:
Date(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) {}
int subDate(Date d) {
int days1 = year * 360 + month * 30 + day;
int days2 = d.getYear() * 360 + d.getMonth() * 30 + d.getDay();
return days1 - days2;
}
Date addNum(int num) {
int days = year * 360 + month * 30 + day + num;
int y = days / 360;
int m = (days % 360) / 30;
int d = days % 30;
return Date(y, m, d);
}
int getYear() const { return year; }
int getMonth() const { return month; }
int getDay() const { return day; }
};
阅读全文