標頭檔案:
#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 _year=
1900
,int _month=1,
int _day=1)
//全預設的預設建構函式
}void
print()
bool
operator
<
(const date& d)
//對《號的運算子過載,判斷兩個日期的大小
else
if(year==d.year)
//年相等的判斷月
else
if(month==d.month)
//月相等的判斷天}}
return0;
}bool
operator
>
(const date& d)
//對《號的復用,取反即可。
bool
operator
<=
(const date& d)
//對《和==復用
bool
operator
>=
(const date& d)
//同理
bool
operator==(
const date& d)
//判斷是否相等返回0 或 1
bool
operator!=(
const date& d)
// == 的復用
date operator+(
int _day)
//復用+=
date operator-(
int _day)
//復用-=
date operator=(
const date& d)
date operator+=
(int _day)
day+
=_day;
//先把天數加起來,在判斷這個月當前的天數是否是合法的。
while
(day>
getmonthday
(year,month)
)//獲取當前月的天數
else
month++
;//不是的話月份++
}return
*this;}
date operator-=
(int _day)
day-
=_day;
//先減掉當前天數
while
(day<1)
//如果不夠的話,借乙個月的天數,月份減一
else
day+
=getmonthday
(year,month)
;//知道加到天數大於0為止,即日期合法
}return
*this;}
intoperator-(
const date&d)
//日期類相減
int n=0;
//計數器,也就是兩個日期相差的天數
while
(min!=max)
//讓小的加到和大的一樣為止
return flag*n;
} date operator++(
)//++和-- 邏輯一樣//返回++後的值
date operator++(
int)
//返回++之前的日期
private
:int year;
int month;
int day;
};
.cpp檔案:
#include
"date.h"
void
test()
intmain()
日期類的實現
在學習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 析構,...
日期類的實現
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 year year month m...