java定义一个日期类 包括年 月 日_【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期..._考试资料网...

填空题【说明】

设计一个日期类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;

Date Date::ntod(intn) //将从元0年0月0日的天数转换成日期

int y=1,m = 1,d,rest = n,lp;

while(1)

if(leap(y))

if(rest<= 366) break;

else rest - = 366;

else //非闰年

if(rest = 365 ) break;

else rest-=365;

y++;

y--;

Ip = leap(y);

while(1)

if(lp) //闰年

if(rest>day_tab[1] [m - 1]) rest -= day_tab[1] [m-1];

else break;

else //非闰

if(rest>day_tab[0] [m -1]) rest -= day_tab[0] [m-1];

else break;

m++;

d = rest;

return Date(y;m,d);

void main()

Date now(2003,10,1) ,then(2005,6,5);

cout<<" now:";now. disp();

cout<<" then:";then. disp();

cout<<"相差天数:"<<(then-now)<<endl;

Date dl = now + 1000,d2 = now - 1000;

cout<<"now + 1000:" ;d1. disp();

cout<<" now - 1000:" :d2. disp();

你可能感兴趣的:(java定义一个日期类,包括年,月,日)