c 之日期類的實現

2021-08-03 17:36:17 字數 3308 閱讀 5270

date .h

#pragma  once

#include

using namespace std;

class date

}date(const date& d)

date& operator=(const date& d);

public:

bool

operator==(const date& d);

bool

operator!=(const date& d);

bool

operator

bool

operator

<=(const date& d);

bool

operator>(const date& d);

bool

operator>=(const date& d);

//日期計算器

date operator+(int day);

date operator+=(int day);

date operator-(int day);

date operator-=(int day);

date& operator++();

date operator++(int);

date& operator--();

date operator--(int);

intoperator-(const date& d); //計算兩個日期之間相隔的天數

private:

bool

illegal(); //檢查日期是否非法

void changelegal(date& date); //將日期化為合法日期

bool isleap(int year);//檢查閏年

int dayofmonth(int year, int month); //計算該日期中當月的天數

private:

int _year;

int _month;

int _day;

};void printcalendar(int year, int month); //列印日曆

istream& operator>>(istream& is, date& d);

ostream& operator

<

date.cpp

#include"date.h"

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

bool date::operator!=(const date& d)

bool date::operator

else

if (_year == d._year)

else

if (_month == d._month)

else

}else

}else

}bool date::operator

<=(const date& d)

bool date::operator>(const date& d)

else

if (_year == d._year)

else

if (_month == d._month)

else

}else

}else

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

date& date::operator=(const date& d)

_year = d._year;

_month = d._month;

_day = d._day;

return *this;

}date date::operator+(int day)

date date::operator+=(int day)

date date::operator-(int day)

date date::operator-=(int day)

date& date::operator++()

date date::operator++(int) //後置++,返回值沒+1,其實本身已經+1

date& date::operator--()

date date::operator--(int)

int date::operator-(const date& d)

else

while (small != big)

return day;

}bool date::illegal() //檢查日期是否非法

else

}void date::changelegal(date& date) //將日期轉為合法日期 }}

else

if (date._day > dayofmonth(date._year, date._month))}}

}bool date::isleap(int year) //檢查該年是否為閏年

}int date::dayofmonth(int year, int month) //返回該月的天數

; if (isleap(year) && month == 2)

return day[month];

}int monthofoneday(int year, int month) //計算當前月的第一天為星期幾

return week;

}}void printcalendar(int year, int month) //列印當前月的日曆

for (int j = 0; j < 6; j++)

else

}i = 0;

cout

<< endl;}}

}istream& operator>>(istream& is, date& d)

ostream& operator

<

test1.cpp

#include

#include "date.h"

void fun1() //日期加減天數

void fun2() //計算兩個日期相差天數

C 之日期類

includeusing namespace std 主要函式及其含義 計算當前日期day天之後日期date operator const date d1,int day 計算當前日期day天之前日期date operator const date d1,int day 計算兩個日期之間差距int ...

C 之日期類

學完前面的東西,現在來具體應用一下 寫乙個日期類,具體功能如下 bool leapyear int year 判斷是不是閏年 int monthday int year,int month 每月天數的判斷 date operator 前置 date operator int 後置 date oper...

C 類與物件之日期類的實現

目錄 在實現前,我們要先把類寫好,類中包含成員函式和成員變數。對於日期類來說,拷貝構造和賦值運算子可以不寫,但是我在類中寫了,也沒關係哦。include using std cout using std endl using std cin class date else 拷貝構造 date con...