网站建设 书籍下载,购物网站建设得背景,济南建设工程有限公司,替人做赌彩网站目录 前言#xff1a;
头文件类与函数的定义Date.h
实现函数的Date.cpp
测试Test.cpp
运行结果#xff1a; 前言#xff1a;
我们在前面的两章初步学习认识了《类与对象》的概念#xff0c;接下来我们将实现一个日期类#xff0c;是我们的知识储备更加牢固。
头文件…目录 前言
头文件类与函数的定义Date.h
实现函数的Date.cpp
测试Test.cpp
运行结果 前言
我们在前面的两章初步学习认识了《类与对象》的概念接下来我们将实现一个日期类是我们的知识储备更加牢固。
头文件类与函数的定义Date.h
#pragma once
#define _CRT_SECURE_NO_WARNIGS 1
#includeiostream
using namespace std;class Date
{
public:friend ostream operator(ostream out, const Date d);int GetMonthDay(int _year, int _month){int day[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };if ((_year % 4 0) (_year % 100 ! 0) || (_year % 400 0)){day[2] 29;}return day[_month];}Date(int year 2000, int month 1, int day 1){if (month 12 || day GetMonthDay(year, month)){cout Setting error!!! endl;exit(-1);}_year year;_month month;_day day;}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);Date operator(int day);Date operator(int day);Date operator();Date operator(int);Date operator-(int day);Date operator-(int day);Date operator--();Date operator--(int);int operator-(const Date d);
private:int _year;int _month;int _day;
};
实现函数的Date.cpp #includeData.h
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);
}
bool Date::operator(const Date d)
{if (_year d._year){return true;}else if (_year d._year){return false;}if (_month d._month){return true;}else if (_month d._month){return false;}if (_day d._day){return true;}return false;
}
bool Date::operator(const Date d)
{return (*this d) || (*this d);
}bool Date::operator(const Date d)
{return !(*this d);
}
bool Date::operator(const Date d)
{return !(*this d);
}Date Date::operator(int day)
{_day day;while (_day GetMonthDay(_year, _month)){_day - GetMonthDay(_year, _month);_month;if (_month 13){_month 1;_year;}}return *this;
}Date Date::operator(int day)
{Date tmp *this;tmp day;return tmp;
}Date Date::operator()
{*this 1;return *this;
}
Date Date::operator(int)
{Date tmp *this;*this 1;return tmp;
}Date Date::operator-(int day)
{_day - day;while (_day 0){_month--;if (_month 0){_month 12;_year--;}_day GetMonthDay(_year, _month);}return *this;
}Date Date::operator-(int day)
{Date tmp *this;tmp - day;return tmp;
}Date Date::operator--()
{*this - 1;return *this;
}Date Date::operator--(int)
{Date tmp *this;*this - 1;return tmp;
}int Date::operator-(const Date d)
{int flag 1;Date max *this;Date min d;if (max min){max d;min *this;flag -1;}int count 0;while (max ! min){min;count;}return flag * count;
}ostream operator(ostream out, const Date d)
{out d._year 年 d._month 月 d._day 号;return out;
}
测试Test.cpp
#includeData.h
int main()
{Date d1(2024, 3, 10);cout d1 endl;Date d2(2024, 6, 17);cout d2 endl;printf(相差天数);cout (d2 - d1) endl;return 0;
}
运行结果