日期類的實現

2021-08-25 02:20:28 字數 1948 閱讀 6793

#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;

}//析構,完成清理工作

~date()

//運算子的過載

// d1 < d2 --> d1.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)

//判斷相等

//d1 == d2

bool operator==(const date& d)}}

return false;

}bool operator != (const date& d)

else

}bool operator >= (const date& d)

else

}bool operator <= (const date& d)

else

}//++d

date& operator ++ () //前置}}

date operator ++ (int) //後置

date& operator -- () //前置

_day += getmonthday(_year,_month);

}return *this;

}date operator -- (int)//後置

date& operator += (int day)

}return *this;

}date operator + (int day)

date& operator -= (int day)

}return (*this);

} date operator - (int day)

//乙個日期減乙個日期,看它們之間相差多少天

//2018-8-6 - 2018-5-23

//d1 - d2

int operator - (date& d)

while(*this > d)

count = count * flag;

if(flag == -1)

return count;

}//取位址運算子的過載

const date* operator & () const

date* operator & ()

//輸入輸出流的過載

//cout << d

<<(d);

friend ostream& operator << (ostream& out,const date& d)

friend istream& operator >> (istream& in,date& d)

//列印年月日

void display()

//獲取某一年某乙個月的天數

int getmonthday(int year,int month)

;//平年

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

return day[_month];

}private:

int _year;

int _month;

int _day;

};int main()

日期類的實現

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

日期類的實現

標頭檔案 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...

日期類的實現

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...