在日常生活中,需要我們計算一些日期,如果一些小的數字相加的話,我們便可以很方便的就計算出來,然而如果需要加上一些特別大的數字的時候,則會很浪費我們的時間,因此,日期計算機的出現,極大的方便了我們的生活,為我們帶來極大的便利。
下面,我們將給出這個日期計算機的實現方式,希望大家相互學習,相互鼓勵。
**思路:當天滿時,則向月進製,當月滿時,則向年進製。借位同理(判斷是否為有效年)。
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...