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

下载了模板如何做网站哈尔滨网站空间

下载了模板如何做网站,哈尔滨网站空间,2344网页游戏大全,ghost wordpress 比较目录 一、前言 二、头文件 三、各个函数的实现 打印、检查日期及获取日期 、、-、-、 、、、、、 #xff01; 日期-日期 、 一、前言 前面几篇讲了关于类和对象的一些知识#xff0c;本篇就来实现一下前面用到的日期类。 二、头文…目录 一、前言 二、头文件 三、各个函数的实现 打印、检查日期及获取日期 、、-、-、 、、、、、  日期-日期 、 一、前言 前面几篇讲了关于类和对象的一些知识本篇就来实现一下前面用到的日期类。 二、头文件 先写上头文件明确我们要实现哪些函数还有一些实现函数需要用到的头文件在头文件中定义日期类及其类中的函数。 #includeiostream using namespace std; class date{friend ostream operator(ostream out, const date d);friend istream operator(istream in, date d);public:void Print();bool CheckDate();// 获取某年某月的天数int GetMonthDay(int year, int month);// 全缺省的构造函数date(int year 1900, int month 1, int day 1){_year year;_month month;_day day;}// 拷贝构造函数date(const date d){_year d._year;_month d._month;_day d._day;}// 赋值运算符重载date 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--(int);// 前置--date operator--();// 运算符重载bool operator(const date d);// 运算符重载bool operator(const date d);// 运算符重载bool operator (const date d);// 运算符重载bool operator (const date d);// 运算符重载bool operator (const date d);// !运算符重载bool operator ! (const date d);// 日期-日期 返回天数int operator-(const date d);private:int _year;int _month;int _day;}; ostream operator(ostream out, const date d); istream operator(istream in, date d); 这里写日期类的流输入和流输出用到的是友元函数的方法如果是写在类里面的话由于类函数自带的Date* this在使用时和我们的流输入流输出的习惯会相反就像这样 bacout 这样的写法就会很别扭所以这里是用到了友元函数的写法来解决这样的问题。 三、各个函数的实现 打印、检查日期及获取日期 打印就是按照 年/月/日 这种形式来打印检查日期是用来判断输入的日期是否有误获取日期后面函数的实现基本都需要用到获取日期的功能这里作为一个函数实现会方便很多。 void date::Print() {cout_year / _month / _day endl; } bool date::CheckDate() {if (_month1 || _month13 || _day 0||_dayGetMonthDay(_year,_month))return false;elsereturn true; } int date::GetMonthDay(int year, int month) {static int monthday[13] { -1,31,28,31,30,31,30,31,31,30,31,30,31 };if (month 2 (year % 4 0 year % 100 ! 0) || (year % 400 0)){return 29;}elsereturn monthday[month]; } 获取日期的函数这里再说一下monthday数组给了13个元素是为了方便用的时候可以对应到我们的1到12月第一个元素就随便写一个就行了用来凑数的。 、、-、-、 这几个分别是日期的赋值、日期天数、日期天数、日期-天数、日期-天数 date date::operator(const date d) {_year d._year;_month d._month;_day d._day;return *this; } 日期的赋值就是把单个的赋值改成年月日的赋值就行了。 date date::operator(int day) {if (day 0){_day - -day;return *this;}_day day;while (_day GetMonthDay(_year, _month)){_day - GetMonthDay(_year, _month);_month;if (_month 13){_year;_month 1;}}return *this; } 前面用到-的代码是为了解决给的天数为负数的问题直接转换成-计算后面的逻辑就是先让年月日中的日的值加上我们给的天数在进入一个循环不断地判断日的值是否大于月的最大天数如果大于就让月数1继续循环判断直到日的值小于该月的最大天数期间如果月份大于了13就给年份1月份从1月重新开始加最后就会得到加完天数后的月份了。 date date::operator-(int day) {if (day 0){_day -day;return *this;}_day - day;while (_day 0){_month--;if (_month 0){_year;_month 12;}_day GetMonthDay(_year, _month);}return *this; } -也是类似的前面避免给的天数为负值的情况然后直接让日的值减去天数进入循环如果日的值为负数就要加上该月的最大天数月份-1直到日的值大于0如过期间月份0了就年份-1月份从12月重新开始计算最后得到日期。 date date::operator(int day) {date tem *this;tem day;return tem; } date date::operator-(int day) {date tem *this;tem - day;return tem; } 有了前面的-和写-和就可以直接套用了。 前置、后置、前置--、后置-- 在C中为了区分和--的前置和后置后置的--和是需要带参数的这里需要注意一下。 date date::operator() {*this 1;return *this; } date date::operator(int) {date tem *this;*this 1;return tem; } date date::operator--(int) {date tem *this;*this - 1;return tem; } date date::operator--() {*this - 1;return *this; } 和--其实和前面的天数-差不多其实就是把给的day变成了1这里也是直接套用前面的-和这里给的代码看一下就不过多的解释了。 、、、、、  bool date::operator(const date d) {return _year d._year _month d._month _day d._month; } 判断两个日期是否相同比较一下年月日就行了很简单。 bool date::operator (const date d) {if (_year d._year)return true;else if (_year d._year){if (_month d._month)return true;else if (_month d._month){if (_day d._day)return true;}}return false; } 比较两个日期的大小先比较两个日期的年份如果相等再比较月份最后再比较天数就行了也是比较简单的代码这里写的的也就是左边的日期比右边的日期小就返回true反之则是false比较大小的逻辑和是一样的。 bool date::operator (const date d) {return *thisd || *thisd; }bool date::operator(const date d) {return !(*this d); }bool date::operator (const date d) {return !(*this d); }bool date::operator ! (const date d) {return !(*this d); } 后面的函数实现就可以套用前面两个函数小于或者等于就是不就是大于不小于就是否定相等相等就是!一环套一环还是挺有意思的不用写那么多代码。 日期-日期 这个函数和前面的-不一样前面的是日期-天数得到日期这个是日期-日期得到天数 int date::operator-(const date d) {date max *this;date min d;int flag 1;if (*this d){max d;min *this;flag -1;}int n 0;while (min ! max){min;n;}return n * flag; } 这个就是先把左边的日期定为大日期右边的定为小日期让小日期不断地直到和大日期相同为止用一个变量记录就可以得到差值如果是右边的天数大用到了一个flag的变量就会返回负值。 、 ostream operator(ostream out, const date d) {out d._year / d._month / d._dayendl;return out; } 日期类的输出就是直接把对象的年月日输出就行了这里的out就是cout的引用返回cout是为了和原本的cout一样能输出多个对象。 istream operator(istream in, date d) {cout 请按年月日依次输入日期: endl;in d._year d._month d._day;if (!d.CheckDate()){cout 非法日期,请重新输入 endl;cout 请按年月日依次输入日期: endl;in d._year d._month d._day;}return in; } 日期类的输入也差不多就是这里加了一个判断输入的日期是否合法用到了前面日期检查的函数。 本篇关于日期类的实现就到这里了实现完后不要忘记了测试一下好了希望这篇内容对各位有帮助如果有错误欢迎指出。
http://www.zqtcl.cn/news/184891/

相关文章:

  • 邢台建设银行官方网站为什么建设网站很多公司没有
  • 闵行做网站费用湖南正规网络营销哪家便宜
  • 找个公司做网站需要注意什么wordpress用户名长度
  • 推荐几个没封的正能量网站营销技巧和营销方法视频
  • html mip 网站桂林市临桂区
  • 做网站如何月入10万建行app怎么注册登录
  • 建设一个旅游网站毕业设计建设网站的功能定位是什么原因
  • wordpress网站导航模板杭州建设网站的公司
  • 如何做视频解析网站wordpress 关闭评论
  • 安福网站建设微信开发者工具怎么下载
  • 网罗设计网站威海网页设计制作公司
  • 网站用cmswordpress插件怎么做
  • 如何办好公司网站元器件网站搭建
  • 建设领域行政处罚查询网站wordpress数据库发文章
  • 怎么做网页的多开器宿迁seo优化
  • 别人帮做的网站怎么修改病句店铺引流的30种方法
  • 网站备案幕布怎么申请绍兴cms建站模板
  • 做网站熊掌号软件设计公司排名
  • 深圳 做网站学做西点的网站
  • 静态网站安全性百度服务平台
  • 网站vi设计公司网站建设app
  • 书店网站建设策划书总结每天看七个广告赚40元的app
  • 做网站的属于什么专业成都广告制作安装公司
  • 天津市网站建设公司网站制作费用
  • 网站制作公司 郑州wordpress图片中文不显示解决
  • 网站建设模式有哪些方面jquery做的装修网站
  • 佛山手机建网站企业网站公司单位有哪些
  • 给企业做网站的平台有没有专门做衣服搭配的网站
  • 青岛本地网站最近军事新闻大事
  • 潍坊哪里有做360网站的成都官微最新发布