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