題目:實現乙個日期類,主要實現日期計算功能:
日期+天數=日期;
日期-天數=日期;
日期-日期=天數;
要實現該日期類,必須熟練掌握運算子過載的概念和實現方法。
以下是編寫的乙個日期類:
標頭檔案:
#ifndef __date_h__原始檔:#define __date_h__
#includeusing namespace std;
class date
;#endif
date::date(int year, int month, int day)//建構函式測試檔案::_year(year)
, _month(month)
, _day(day)
}date::date(const date& d)//拷貝建構函式
date& date::operator=(const date& d)//賦值運算子過載
int date::daysofmonth()
; //用陣列的形式表示每個月的天數
if (isleapyear())//若為閏年則二月份天數為29天
return days[_month];
}bool date::isinvalid()
bool date::isleapyear()
ostream& operator<<(ostream& output, const date& d)//輸出運算子過載
bool operator==(const date& d1, const date& d2)
bool operator!=(const date& d1, const date& d2)
bool operator>(const date& d1, const date& d2)
}} return false;
}bool operator>=(const date& d1, const date& d2)
bool operator<=(const date& d1, const date& d2)
bool operator<(const date& d1, const date& d2)
void date::tocorrectdate()
else
_month--;
_day += daysofmonth();
} while (_day > daysofmonth())
else
_month++; }}
date operator+(const date& d, int days)
date& date::operator+=(int days)
date operator-(const date& d, int days)
date& date::operator-=(int days)
int operator-(const date& d1, const date& d2)
if (d1 < d2)
while (mindate != maxdate)//較小的日期每次增加一天,直到與較大日期相等
return days;
}
#include"date.h"int main()
日期類實現
c 作為一門物件導向的語言,抽象思想非常重要,將事物抽象為類,通過物件之間的互動解決問題,是物件導向程式設計語言的解題思想.本章定義乙個日期類,用於解決和日期相關的問題.要自定義乙個類,首先需要構造出類需要的成員變數,日期類的成員變數包括三個變數,年月日.其次,需要例項化類,需要實現類的建構函式,並...
Date類,實現日期類
1 概述 類 date 表示特定的瞬間,精確到毫秒。2 構造方法 public date public date long date 把乙個long型別的毫秒值轉換成乙個日期物件 3 成員方法 public long gettime 獲取乙個日期物件物件毫秒值 public void settime...
日期類的實現
在學習c 類的時候,日期類是最基礎也是最重要的乙個類。簡單的日期類並不複雜,但在實現的過程中主要會涉及一些c 的基本成員函式。這個 的難度主要在於如何判斷日期類的合法性,比如月份如果大於12,天數也要合法,比如二月不能閏年不能超過30天,平年28天。在自增和自減的時候,也要考慮到年份 月份和天數的變...