實現日期類(日期計算器)

2021-08-08 17:43:53 字數 3518 閱讀 5798

在日常生活中,需要我們計算一些日期,如果一些小的數字相加的話,我們便可以很方便的就計算出來,然而如果需要加上一些特別大的數字的時候,則會很浪費我們的時間,因此,日期計算機的出現,極大的方便了我們的生活,為我們帶來極大的便利。

下面,我們將給出這個日期計算機的實現方式,希望大家相互學習,相互鼓勵。

**思路:當天滿時,則向月進製,當月滿時,則向年進製。借位同理(判斷是否為有效年)。

date(const date& d)//拷貝建構函式

//獲得某月的天數

int getmonthday(int _year, int _month)

else

if (_month == 2)

else

}else

//平年

else

if (_month == 2)

else}}

//判斷日期是否合法

bool isinvalid(int year, int month, int day)//判斷日期是否合法

date& operator=(const date& d)

return *this;

}前置++ 分情況(方法一)

//date& operator++()

//// else

//

// else

//

// }

// }

// else if (_month == 4 || _month == 6 || _month == 9 || _month == 11)

//

// else

//

// }

// //判斷是否是閏年

// else

//

// else

//

// }

// else

//

// else

//

// }

// }

// return *this;

//}//方法二:前置++

date operator++()

}return *this;

}// 後置++ 返回值中day的天數不能變

date operator++(int)

//方法一:前置--

//date& operator--()

//// else

//

// break;

// case 4:

// case 6:

// case 9:

// case 11:

// if (_day > 1)

//

// else

//

// break;

// case 1:

// if (_day > 1)

//

// else

//

// break;

// case 3:

// if (((_year % 4 == 0) && (_year % 100 != 0)) || (_year % 400 == 0))//閏年

//

// else

//

// }

// else

//

// else

//

// }

// break;

// case 2:

// if (_day > 1)

//

// else

//

// break;

// }

// return*this;

//}//方法二:前置--

date operator--()

}return* this;

}date operator--(int)

//days天之後的日期

date operator+(int day)

_day += day;

while (_day>getmonthday(_year, _month))//當當前加上的天數,大於合法的日期,則要要下乙個月進製

}return *this;

}// days天之前的日期

date operator-(int days)

_day -= days;

while (_day < 0)//當減去之後,這個數小於0,則需要向上乙個月借

_day = getmonthday(_year, _month)+days;//此時的days相當於減了之後的days

}return*this;

}int

operator-(const date& d)//計算兩個日期之間差了多少天

else

while (small != big)

return count;//返回加的天數

}bool

operator==(const date& d)const

else

return

false;

}bool

operator!=(const date& d)const

//else

//return false;

//法二:

return !(*this == d);

}bool

operator>(const date& d)const

else

return

false;

}bool

operator

else

return

false;

}void printdata()

private:

int _year;

int _month;

int _day;

};下面將是測試**:

int main()

寫到這裡,乙個日期類大概就實現了,如果大家有更好的意見,,一起交流哦!!!

日期類 日期計算器

想要完成日期計算器其實只要考慮完成兩個工作就可以了 實現第乙個工作時,如果是減去乙個天數,例如 給定2017 7 10 與減去乙個天數不同的加乙個天數 即多少天以後 需要向當前月份的下乙個月借天數減去目標天數來滿足年月日合法。加減乙個目標天數的實現思路個方法是一樣的。個中細節請參考 中的注釋。實現第...

日期類 日期計算器

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

日期計算器

define crt secure no warnings include includeusing namespace std class date bool operator const date d 小於運算子的過載 bool operator const date d 等於運算子的過載 bo...