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

asp.net网站开发步骤浙江网络推广

asp.net网站开发步骤,浙江网络推广,做网站和管理系统,在家怎么利用电脑赚钱前言:在类和对象比较熟悉的情况下,我们我们就可以开始制作日期表了,实现日期类所包含的知识点有构造函数,析构函数,函数重载,拷贝构造函数,运算符重载,const成员函数 1.日期类的加减…

前言:在类和对象比较熟悉的情况下,我们我们就可以开始制作日期表了,实现日期类所包含的知识点有构造函数,析构函数,函数重载,拷贝构造函数,运算符重载,const成员函数

1.日期类的加减运算

#define _CRT_SECURE_NO_WARNINGS 1
#include"data.h"
class Data
{
public://获取某年某月的天数int GetMonthday(int year, int month){int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };int day = days[month];if (month == 2){if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)){day += 1;}}return day;}Data(int year=1900,int month=1,int day=1){_year = year;_month = month;_day = day;}//拷贝构造//Data(const Data& d);//日期赋值Data& operator = (const Data & d) const{_year = d._year;_month = d._month;_day = d._day;return *this;}Data& operator-=(int day){_day -= day;while (_day <= 0){if (_month == 1){_year--;_month = 12;}else{_month--;}_day = GetMonthday(_year, _month) + _day;}return *this;}Data& operator+=(int day){_day += day;while (_day > GetMonthday(_year, _month)){_day = _day - GetMonthday(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;}void Print(const Data& d){cout << _year << "年" << _month << "月" << _day << "日" << endl;}private:int _year;int _month;int _day;};int main()
{Data d1(2023,12,31);Data d2(d1);d2 = d2.operator+=(10000);d2.Print(d2);return 0;
}

2 日期类的运算符重载

类里面有默认的拷贝构造函数(不显含),还有默认的构造函数(不显含),你也可以把这个默认的构造函数写出来,只是不显含的构造函数对类里面的内置类型不做处理,自定义类型会调用它的构造函数,就会处理一下。

//日期赋值
Data& operator = (const Data & d)
{_year = d._year;_month = d._month;_day = d._day;return *this;
}Data& operator-=(int day)
{_day -= day;while (_day <= 0){if (_month == 1){_year--;_month = 12;}else{_month--;}_day = GetMonthday(_year, _month) + _day;}return *this;
}Data& operator+=(int day)
{_day += day;while (_day > GetMonthday(_year, _month)){_day = _day - GetMonthday(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;
}Data& operator++()//前置++
{_day++;if (_day > GetMonthday(_year, _month)){_day = _day - GetMonthday(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;
}Data& operator++(int)//后置++
{Data d = *this;++_day;return d;
}//运算符重载,比较两个日期的大小
bool operator>(const Data& d)
{return ((_year > d._year) || (_year==d._year&&_month > d._month) || (_year == d._year && _month == d._month&&_day > d._day));
}bool operator>=(const Data& d)
{return !((_year < d._year) || (_year == d._year && _month < d._month) || (_year == d._year && _month == d._month && _day < d._day));
}bool operator<(const Data& d)
{return ((_year < d._year) || (_year == d._year && _month < d._month) || (_year == d._year && _month == d._month && _day < d._day));
}bool operator<=(const Data& d)
{return !((_year > d._year) || (_year > d._year && _month > d._month) || (_year == d._year && _month == d._month && _day > d._day));}bool operator!=(const Data& d)
{return !((_year == d._year) && (_month == d._month) && (_day == d._day));
}int operator-(Data& d)
{Data max = *this;Data min = d;int flag = 1;if (*this < d){max = d;min = *this;flag = -1;}int n = 0;while (min != max){++min;++n;}return flag * n;
}

3 我们将运算符重载的函数和两个日期相差的天数进行配合计算

int operator-(Data& d)
{Data max = *this;Data min = d;int flag = 1;if (*this < d){max = d;min = *this;flag = -1;}int n = 0;while (min != max){++min;++n;}return flag * n;
}

int main()
{Data d1(2023,12,31);//Data d2(d1);Data d2(1900,11,30);//d2 = d2.operator+=(10000);d2.Print(d2);cout << d2.operator-(d1) << endl;return 0;
}

所有源码的实现如下

data.h#pragma once
#include<iostream>
using namespace std;
class Data
{
public://获取某年某月的天数int GetMonthday(int year, int month){int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };int day = days[month];if (month == 2){if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)){day += 1;}}return day;}Data(int year = 1900, int month = 1, int day = 1){_year = year;_month = month;_day = day;}//拷贝构造//Data(const Data& d);//日期赋值Data& operator = (const Data& d);Data& operator-=(int day);Data& operator+=(int day);Data& operator++();//前置++Data& operator++(int);//后置++//运算符重载,比较两个日期的大小bool operator>(const Data& d);bool operator>=(const Data& d);bool operator<(const Data& d);bool operator<=(const Data& d);bool operator!=(const Data& d);int operator-(Data& d);void Print(const Data& d);private:int _year;int _month;int _day;};data.cpp#define _CRT_SECURE_NO_WARNINGS 1
#include"data.h"
Data& Data::operator = (const Data& d)
{_year = d._year;_month = d._month;_day = d._day;return *this;
}Data& Data::operator-=(int day)
{_day -= day;while (_day <= 0){if (_month == 1){_year--;_month = 12;}else{_month--;}_day = GetMonthday(_year, _month) + _day;}return *this;
}Data& Data::operator+=(int day)
{_day += day;while (_day > GetMonthday(_year, _month)){_day = _day - GetMonthday(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;
}Data& Data::operator++()//前置++
{_day++;if (_day > GetMonthday(_year, _month)){_day = _day - GetMonthday(_year, _month);_month++;if (_month == 13){_year++;_month = 1;}}return *this;
}Data& Data::operator++(int)//后置++
{Data d = *this;++_day;return d;
}//运算符重载,比较两个日期的大小
bool Data::operator>(const Data& d)
{return ((_year > d._year) || (_year == d._year && _month > d._month) || (_year == d._year && _month == d._month && _day > d._day));
}bool Data::operator>=(const Data& d)
{return !((_year < d._year) || (_year == d._year && _month < d._month) || (_year == d._year && _month == d._month && _day < d._day));
}bool Data::operator<(const Data& d)
{return ((_year < d._year) || (_year == d._year && _month < d._month) || (_year == d._year && _month == d._month && _day < d._day));
}bool Data::operator<=(const Data& d)
{return !((_year > d._year) || (_year > d._year && _month > d._month) || (_year == d._year && _month == d._month && _day > d._day));}bool Data::operator!=(const Data& d)
{return !((_year == d._year) && (_month == d._month) && (_day == d._day));
}int Data::operator-(Data& d)
{Data max = *this;Data min = d;int flag = 1;if (*this < d){max = d;min = *this;flag = -1;}int n = 0;while (min != max){++min;++n;}return flag * n;
}void Data::Print(const Data& d)
{cout << _year << "年" << _month << "月" << _day << "日" << endl;
}int main()
{Data d1(2023,12,31);//Data d2(d1);Data d2(1900,11,30);//d2 = d2.operator+=(10000);d2.Print(d2);cout << d2.operator-(d1) << endl;return 0;
}

http://www.15wanjia.com/news/54961.html

相关文章:

  • 用html做女装网站百度推广一年多少钱
  • 北京做网站推广人民网今日头条
  • c 可以做网站吗网络营销属于什么专业类型
  • 做风险代理案源的网站百度热搜榜排名今日p2p
  • 建设厅执业注册中心网站sem推广优化
  • 如何做网站框架济宁网站建设
  • 网站设计与制作说明百度推广退款投诉
  • 整页图片广告网站源码站长工具seo下载
  • 广州专门做网站平台推广方案
  • 一个手机网站北京互联网公司排名
  • 企业网站seo哪里好技能培训班有哪些课程
  • host绑定网站seo综合查询软件排名
  • 网站建设 网络推广seo搜索优化是什么意思
  • 网站 不公安备案吗收录查询 站长工具
  • 广东微信网站制作价格网络优化大师手机版
  • 创恒建设有限公司网站广告营销是做什么的
  • 个人网站做影视不屏蔽的国外搜索引擎
  • wix怎么做网站教程百度指数专业版app
  • 网站建设公司业务培训上海牛巨微网络科技有限公司
  • 海口企业模板建站推广软件
  • 网站做404好处整站优化加盟
  • 英语可以做推广的亲子类网站专业seo排名优化费用
  • 做党建网站百度快照怎么删除
  • 网页设计培训学多久关键词排名seo
  • 北京的网站建设公司济南做seo排名
  • 南宁市视点网络信息有限公司网络优化报告
  • 空间租用 网站开发搜索引擎的优化方法
  • 建设什么网站可以赚钱武汉十大技能培训机构
  • 温州微网站制作多少钱网络培训班
  • 江阴网站建设推广seo计费系统开发