当前位置: 首页 > news >正文

唐山网站建设安顺市哪里可以做网站

唐山网站建设,安顺市哪里可以做网站,腾讯地图如何标注自己店铺位置,罗湖区住房和建设网站文章目录1. 日期类的具体实现1.查询当前月份的天数2. 构造函数的实现(注意)3.d1d24. d1!d25. d1d26. d1d27. d1d28. d1d29. 日期天数10.日期天数11.日期-天数12. 日期-天数13. d和 d14. --d 和 d--15.日期日期 返回天数2. 函数的声明——date.h3. 函数的定义—… 文章目录1. 日期类的具体实现1.查询当前月份的天数2. 构造函数的实现(注意)3.d1d24. d1!d25. d1d26. d1d27. d1d28. d1d29. 日期天数10.日期天数11.日期-天数12. 日期-天数13. d和 d14. --d 和 d--15.日期日期 返回天数2. 函数的声明——date.h3. 函数的定义——date.cpp4.函数调用——main.cpp由于拆分了函数的声明和定义所以在函数前面要加上date类找到函数1. 日期类的具体实现 1.查询当前月份的天数 int date::getmonthday(int year, int month) {int arr[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };if (month 2 (((year % 4 0) (year % 100 ! 0)) || (year % 400 0) )){//是闰年并且是2月份return 29;}return arr[month]; }设置一个数组下标对应月份并把2月闰年的情况单拉出来 2. 构造函数的实现(注意) date::date(int year, int month, int day) {//判断日期是否合法if ( month0 month 13 ( day0daygetmonthday(year,month) ) ){_year year;_month month;_day day;}else{cout 日期不合法 endl;} }一定要注意日期传过来是否合法存在 3.d1d2 bool date::operator(const date d) {return (_year d._year) (_month d._month) (_day d._day); }判断 年 月 日依次是否相等 4. d1!d2 bool date::operator!(const date d) {return !(*this d);//复用d1d2的相反逻辑 }如果我们再次自己写就会有很多情况考虑所以直接复用 d1d2的取反 5. d1d2 bool date::operator(const date d) {if (_year d._year)//年小为小{return true;}else if (_year d._year _month d._month)//年相等 月小为小{return true;}else if (_year d._year _month d._month _day d._day)// 年月相等 天小为小{return true;}else{return false;} }年小的为小 年相等月小为小 年 月相等天小为小 其他情况都为false 6. d1d2 bool date::operator(const date d) {return (* this d) || (*this d);//复用 d1d2 和d1d2的情况 }d1d2是由 d1d2 和d1d2 组成分别复用两者即可实现 7. d1d2 bool date::operator(const date d) {return !(*this d) (*this ! d);//复用 d1d2的逻辑反 以及d1!d2 }d1d2的逻辑取反是 d1d2 由于d1d2我们已经实现过了只需要加上d1!d2即可 8. d1d2 bool date::operator(const date d) {return !(* this d);//复用d1d2的逻辑反 }复用d1d2的逻辑取反即可实现 d1d2 9. 日期天数 date date::operator(int day) {if (day 0)// -等价于 -{*this - -day;//复用-return *this;}//由于是改变本身,所以返回*thisint getday _day day;//判断当前加上的天数是否大于当前月份的天数while (getday getmonthday(_year, _month)){getday - getmonthday(_year, _month);_month;if (_month 13){_year;_month 1;}}//最后注意剩余的getday就为当前月份的天数_day getday;//除了作用域 *this 还在所以可以使用引用返回return *this; }当day为负时 - 等价于- 所以调用-的复用即可(-实现在后面) 同样由于是对于本身操作除了作用域还存在所以使用引用返回 10.日期天数 date date::operator(int day) {//注释的为第一种方法//由于不改变日期本身所以用一个临时变量代替//date ret *this;//int getday ret._day day;判断当前加上的天数是否大于当前月份的天数//while (getday getmonthday(ret._year, ret._month))//{// getday - getmonthday(ret._year, ret._month);// ret._month;// if (ret._month 13)// {// ret._year;// ret._month 1;// }//}最后注意剩余的getday就为当前月份的天数//ret._day getday;除了作用域 ret不在了所以使用传值返回//return ret;//方法二date tmp *this;tmp day;return tmp;//复用 日期天数的功能 } 这里用了两种方法实现但是可以发现第一种过于繁琐只需复用上述返回临时变量tmp即可 同样由于临时变量出了作用域就不存在了所以使用传值返回 11.日期-天数 date date::operator-(int day) {if (day 0){*this -day;//复用return *this;}_day - day;//当day 小于 当前月份的天数 直接return//当 day大于等于 当前月份的天数 进入循环while (_day 0){//返回到上一个月份_month--;//当月份为1时 --为0if (_month 0){_year--;_month 12;}_day getmonthday(_year, _month);}return *this; }这里不太好想如果当前日期月份的天数_day大于day则直接return若小于则会使_day为负进入循环同时向上一个月借天数直到 _day0 若day为负--等价于 直接复用即可 12. 日期-天数 date date::operator-(int day) {date ret *this;ret - day;return ret; }复用上面的-即可返回临时变量ret 13. d和 d date date::operator()//d {*this 1;//复用return *this; }前置是正常调用operator并且返回本身因为除了作用域还存在所以用引用返回 date date::operator(int)//d {date ret *this;*this 1;//复用return ret; }后置因为同样是operator为了区分所以加上参数int用于占位没有实际作用)构成函数重载 因为返回临时变量ret所以用传值返回 14. --d 和 d– date date::operator--()//--d {*this - 1;//复用-return *this; }前置- -是正常调用operator- -并且返回本身因为除了作用域还存在所以用引用返回 date date::operator--(int)//d-- {date ret *this;*this - 1;//复用-return ret; }后置- -因为同样是operator- -为了区分所以加上参数int用于占位没有实际作用)构成函数重载 因为返回临时变量ret所以用传值返回 15.日期日期 返回天数 date date::operator--(int)//d-- {date ret *this;*this - 1;//复用-return ret; }int date::operator-(date d){date max *this;date min d;if (*this d)//复用{max d;min *this;}int n 0;while (min ! max)//复用!{n;if (min._day getmonthday(min._year, min._month)){min._day;}else{min._month;min._day 1;}if (min._month 13){min._year;min._month 1;}}return n;}主要使用max和min两个临时变量使min._day不断最终使maxmin 结束返回计数n值 2. 函数的声明——date.h #includeiostream using namespace std; class date { public://函数声明int getmonthday(int year, int month);//查询当前月份的天数date(int year1, int month1, int day1);//构造void print();//输出bool operator(const date d);//d1d2bool operator!(const date d);//d1!d2bool operator(const date d);//d1d2bool operator(const date d);//d1d2bool operator(const date d);//d1d2bool operator(const date d);//d1d2date operator(int day);//日期天数date operator(int day);//日期天数date operator-(int day);//日期-天数date operator-(int day);//日期-天数date operator();//d//int 参数仅是为了占位构成函数重载 区分前置date operator(int);//ddate operator--(); //--ddate operator--(int);//d--int operator-( date d);//日期-日期 返回天数 private:int _year;int _month;int _day; };3. 函数的定义——date.cpp #includedate.h //函数实现 int date::getmonthday(int year, int month) {int arr[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };if (month 2 (((year % 4 0) (year % 100 ! 0)) || (year % 400 0) )){//是闰年并且是2月份return 29;}return arr[month]; } date::date(int year, int month, int day) {//判断日期是否合法if ( month0 month 13 ( day0daygetmonthday(year,month) ) ){_year year;_month month;_day day;}else{cout 日期不合法 endl;}} void date::print() {cout _year - _month - _day endl; } bool date::operator(const date d) {return (_year d._year) (_month d._month) (_day d._day); } bool date::operator!(const date d) {return !(*this d);//复用d1d2的相反逻辑 } bool date::operator(const date d) {if (_year d._year)//年小为小{return true;}else if (_year d._year _month d._month)//年相等 月小为小{return true;}else if (_year d._year _month d._month _day d._day)// 年月相等 天小为小{return true;}else{return false;} } bool date::operator(const date d) {return (* this d) || (*this d);//复用 d1d2 和d1d2的情况 } bool date::operator(const date d) {return !(*this d) (*this ! d);//复用 d1d2的逻辑反 以及d1!d2 } bool date::operator(const date d) {return !(* this d);//复用d1d2的逻辑反 }date date::operator(int day) {if (day 0)// -等价于 -{*this - -day;//复用-return *this;}//由于是改变本身,所以返回*thisint getday _day day;//判断当前加上的天数是否大于当前月份的天数while (getday getmonthday(_year, _month)){getday - getmonthday(_year, _month);_month;if (_month 13){_year;_month 1;}}//最后注意剩余的getday就为当前月份的天数_day getday;//除了作用域 *this 还在所以可以使用引用返回return *this; } date date::operator(int day) {由于不改变日期本身所以用一个临时变量代替//date ret *this;//int getday ret._day day;判断当前加上的天数是否大于当前月份的天数//while (getday getmonthday(ret._year, ret._month))//{// getday - getmonthday(ret._year, ret._month);// ret._month;// if (ret._month 13)// {// ret._year;// ret._month 1;// }//}最后注意剩余的getday就为当前月份的天数//ret._day getday;除了作用域 ret不在了所以使用传值返回//return ret;date tmp *this;tmp day;return tmp;//复用 日期天数的功能 }date date::operator-(int day) {if (day 0){*this -day;//复用return *this; }_day - day;//当day 小于 当前月份的天数 直接return//当 day大于等于 当前月份的天数 进入循环while (_day 0){//返回到上一个月份_month--;//当月份为1时 --为0if (_month 0){_year--;_month 12;}_day getmonthday(_year, _month);}return *this; } date date::operator-(int day) {date ret *this;ret - day;return ret; } date date::operator()//d {*this 1;return *this; } date date::operator(int)//d {date ret *this;*this 1;return ret; }date date::operator--()//--d {*this - 1;//复用-return *this; }date date::operator--(int)//d-- {date ret *this;*this - 1;//复用-return ret; }int date::operator-(date d){date max *this;date min d;if (*this d){max d;min *this;}int n 0;while (min ! max){n;if (min._day getmonthday(min._year, min._month)){min._day;}else{min._month;min._day 1;}if (min._month 13){min._year;min._month 1;}}return n;}4.函数调用——main.cpp #includedate.h int main() {date d1(2023, 2, 9);date d2(2023, 2, 1);cout (d1d2) endl;cout (d1 d2) endl;cout (d1 - d2) endl;return 0; }
http://www.hkea.cn/news/14355119/

相关文章:

  • 安顺住房和城乡建设部网站做网站建设的销售怎么样
  • 哪些网站是用iframe如何自学网站制作
  • 在线视频制作网站宝坻区建设路小学网站
  • 不要域名做网站网站备案查询工具
  • 一般做网站宽高多少网站目录怎么做301重定向
  • 无锡网站建设 app 微信平台设计什么意思
  • 厦门做网页网站的公司开发公司设计管理部绩效考核
  • 网站建设免费视频教学网站开发合同预期
  • 做社交网站怎么赚钱浙江百度查关键词排名
  • 杭州网站建设优化案例用什么网站可以做
  • 南昌地宝网招聘信息网最新招聘网站网站怎么优化关键词排名
  • 文学网站模板下载哈尔滨优化网站方法
  • 子网站如何做k2 wordpress
  • 产品网站更新内容上海网站建设安全
  • 新广告法 做网站的书写网站建设策划书
  • 闵行区网站制作河北住房和城乡建设厅网站电话
  • 私人网站建设成本软件开发外包公司哪个好
  • 网站建设公司的前景房地产设计公司
  • 万维网域名注册网站邯郸网站建设哪家专业
  • 钓鱼网站图片亚洲国产中文域名查询
  • 吴江专业的网站建设潍坊建设部门管理网站
  • 温州市建设安监局网站wordpress利用视频引流
  • qq空间做网站做网站南京
  • 做网站怎么插音乐建筑公司需求发布网站
  • 云图书馆平台网站建设网站的空间
  • 带后台管理的网站模板wordpress免费汽车配件企业主题
  • 网站模板 博客网站建设费用会计处理
  • 网站制作 视频淮南网络建站公司
  • 中型电商网站维护费用开发做一个网站的流程
  • 建站服务器济南专业网站建设咨询