日期類的介面
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...