date.h
#pragma once
#include
using
namespace
std;
class date
}//operator>
inline
bool
operator>(const date& d) const
else
if (_year == d._year)
else
if (_month == d._month)}}
return
false;
}//operator>=
inline
bool
operator>=(const date& d) const
//operator<
bool
operator
//operator<=
inline
bool
operator
<=(const date& d) const
//operator==
inline
bool
operator==(const date& d) const
//operator!=
inline
bool
operator!=(const date& d) const
bool isinvalid()
else
}//d1 + 100
date operator+(int day)
date tmp(*this);
tmp._day += day;
while (tmp.isinvalid())
}return tmp;
}inline date& operator+=(int day)
date operator-(int day)
date tmp(*this);
tmp._day -= day;
while (tmp.isinvalid())
tmp._day += getmonthdays(tmp._year, tmp._month);
}return tmp;
}date& operator-=(int day)
inline date& operator++()
inline date operator++(int)
inline date& operator--()
inline date operator--(int)
intoperator-(const date& d)
int count = 0;
while (min != max)
return count*tag;
}void display()const
inline
static
bool isleapyear(int year)
return
false;
}inline
static
int getmonthdays(int year, int month)//判斷日期是否合法
static
int monthdays[13] = ;
int days = monthdays[month];
if (month == 2 && isleapyear(year))
return days;
}private:
int _year;
int _month;
int _day;
};//過載《和》的原因:例如cout
<
//這裡不寫成void operator<
istream& operator>>(istream& in, date& d)
//這裡的date& d不能寫成const date& d,不能加const的原因是輸入乙個日期會被修改。
void testdate()}}
test.cpp
#include"date.h"
int main()
程式執行結果:
日期類 日期計算器
想要完成日期計算器其實只要考慮完成兩個工作就可以了 實現第乙個工作時,如果是減去乙個天數,例如 給定2017 7 10 與減去乙個天數不同的加乙個天數 即多少天以後 需要向當前月份的下乙個月借天數減去目標天數來滿足年月日合法。加減乙個目標天數的實現思路個方法是一樣的。個中細節請參考 中的注釋。實現第...
實現日期類(日期計算器)
在日常生活中,需要我們計算一些日期,如果一些小的數字相加的話,我們便可以很方便的就計算出來,然而如果需要加上一些特別大的數字的時候,則會很浪費我們的時間,因此,日期計算機的出現,極大的方便了我們的生活,為我們帶來極大的便利。下面,我們將給出這個日期計算機的實現方式,希望大家相互學習,相互鼓勵。思路 ...
日期計算器
define crt secure no warnings include includeusing namespace std class date bool operator const date d 小於運算子的過載 bool operator const date d 等於運算子的過載 bo...