日期類的實現

2021-10-20 22:39:18 字數 3327 閱讀 4123

日期類的介面

class date

;int day = days[month];

if (month == 2

&&((year % 4 == 0 && year % 100 != 0) || (year%400 == 0)))

return day;

}// 全預設的建構函式

date(int year = 1900, int month = 1, int day = 1);

// 拷貝建構函式

// d2(d1)

date(const date& d);

// 賦值運算子過載

// d2 = d3 -> d2.operator=(&d2, d3)

date& operator=(const date& d);

// 析構函式

~date();

// 日期+=天數

date& operator+=(int day);

// 日期+天數

date operator+(int day);

// 日期-天數

date operator-(int day);

// 日期-=天數

date& operator-=(int day);

// 前置++

date& operator++();

// 後置++

date operator++(int);

// 後置--

date operator--(int);

// 前置--

date& operator--();

// >運算子過載

bool operator>(const date& d);

// ==運算子過載

bool operator==(const date& d);

// >=運算子過載

inline bool operator >= (const date& d);

// 《運算子過載

bool operator < (const date& d);

// <=運算子過載

bool operator <= (const date& d);

// !=運算子過載

bool operator != (const date& d);

// 日期-日期 返回天數

int operator-(const date& d);

private:

int _year;

int _month;

int _day;

};日期類的**

#includeusing namespace std;

class date

; int day = days[month];

if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)))

return day;

} //全預設的建構函式

date(int year = 1, int month = 1, int day = 1)

_year = year;

_month = month;

_day = day;

} //拷貝建構函式

//d2(d1)

date(const date& d)

//賦值運算子過載

//d2=d3->d2.operator(&d2,d3)

date& operator=(const date& d)

return *this;

} //析構函式

~date()

void print()

//日期+=天數

//d1+=10;

//d1+=-10;

date& operator+=(int day)

_day += day;

while (_day>getmonthday(_year, _month))

}return *this;

} //日期+天數

//d+10

date operator+(int day)

//日期-天數

date operator-(int day)

//日期-=天數

//d-=100

//d-=-100

date& operator-=(int day)

_day -= day;

while (_day <= 0)

_day += getmonthday(_year, _month);

} return *this;

} //前置++

//++d ->d.operator++(&d)

date& operator++()

//後置++

//d++ ->d.operator++(&d,0)

date operator++(int)

//後置--

date operator--(int)

//前置--

date& operator--()

//d1>d2

//>運算子過載

bool operator>(const date& d)

else if (_year == d._year)

else if (_month == d._month)

}} return false;

} //==運算子過載

bool operator==(const date& d)

//復用上面兩個的實現

//>=運算子過載

inline bool operator>=(const date&d)

//<

bool operator<(const date&d)

//<=

bool operator<=(const date&d)

//!=

bool operator!=(const date&d)

//d1-d2

//日期-日期 返回天數

int operator-(const date& d)

int day = 0;

while (min < max)

return day*flag;

}private:

int _year;

int _month;

int _day;

};void test()

int main()

日期類的實現

在學習c 類的時候,日期類是最基礎也是最重要的乙個類。簡單的日期類並不複雜,但在實現的過程中主要會涉及一些c 的基本成員函式。這個 的難度主要在於如何判斷日期類的合法性,比如月份如果大於12,天數也要合法,比如二月不能閏年不能超過30天,平年28天。在自增和自減的時候,也要考慮到年份 月份和天數的變...

日期類的實現

includeusing namespace std class date 拷貝構造 s2 s1 s2 this,s1 d date const date d 賦值運算子的過載 d1 d2 d1 this,d2 d date operator const date d return this 析構,...

日期類的實現

標頭檔案 include include using namespace std class date if month 2 year 4 0 year 100 0 year 400 0 p只有當是閏年的2月才返回29天 else return monthdays month date int ye...