填空题
【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。 在Date类中设计如下重载运算符函数: Date operator + (int days) : 返回某日期加上天数得到的日期。 Date operator - (int days) : 返回某日期减去天数得到的日期。 int operator - (Date&b): 返回两日期相差的天数。 【程序】 #include<iostream.h> int day tab[2][12]=31,28,31,30,31,30,31,31,30,31,30,31, 31,29,31,30,31,30,31,31,30,31,30,31; //day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date
int year, month, day //年,月,日 int leap(int); //判断是否闰年 int dton(Date&) Date ntod(int) public: Date() Date (int y, int mint d) I year = y; month = m; day = d; void setday(intd)day = d; void setmonth(int m) month = m; void setyear(int y) year =y; int getday() return day; int getmonth() return month: int getyear() return yea; Date operator + (int days) //+运算符重载函数
static Date date; int number = (1) date = ntod(number) return date
Date operator - (int days) //-运算符重载函数
staffs Date date; int number= (2) ; number - = days; date = ntod(number) return date;
int operator - (Date &b) //-运算符重载函数
int days= (3) ; return days;
void disp()
cout<<year<<"."<<month<<". "<<day<<endl;
; int Date: :leap( int year) if( (4) ) //是闰年 return 1; //不是闰年 else return0:
int Date:: dton( Date &d) //求从公元0年0月0日到d日期的天数
inty,m,days =0; for(y=1;y<=d. year;y++) if( (5) )days+ =366; //闰年时加366天 else days + = 365; //非闰年时加365天 for(m =0;m<d. month-1;m++) if( (6) ) days += day_tab[1] [m]; else days +=day_tab[0] [m]; days + = d. day; return days;