📄 date.cpp
字号:
#include<iostream>
using namespace std;
#include"date.h"
Date::Date()
{
day=23;
month=3;
year=2006;
}
Date::Date(int d1)
{
if((d1<=judge(3,2006))&&d1>0)
{
day=d1;
month=3;
year=2006;
}
else
cout<<"日期不合法!!!";
}
Date::Date(int d1,int m1)
{
if((d1<=judge(m1,2006))&&d1>0)
{
day=d1;
month=m1;
year=2006;
}
else
cout<<"日起不合法!!!";
}
Date::Date(int d1,int m1,int y1)
{
if((d1<=judge(m1,y1))&&d1>0)
{
day=d1;
month=m1;
year=y1;
}
else if(d1>judge(m1,y1))
cout<<"日起不合法!!!";
}
int Date::getDay()
{
return day;
}
int Date::getMonth()
{
return month;
}
int Date::getYear()
{
return year;
}
int Date::judge(int m,int y)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
return 31;
else if(m==4||m==6||m==9||m==11) //丢掉一个等号导致我改了很久!!!
return 30;
else if((y%400==0||(y%4==0&&y%100!=0))&&(m==2))//是闰年的情况下
{
return 29;
}
else
{
return 28;
}
}
void Date::add_day(int n)
{
int max=judge(month,year);
if(n>30)
{
cout<<"加的天数过大"<<endl;
return;
}
if((n+day)>max)
{
day=(n+day)-max;
if(month==12)
{
month=1;
year++;
return;
}
else
{
month++;
return;
}
}//end if
else
{
day=day+n;
return;
}
}
void Date::add_month(int n)
{
if(n>12)
{
cout<<"加的月数过大!!!"<<endl;
return;
}
if((month+n)>12)
{
year++;
month=month+n-12;
if(day>judge(month,year))
{
day=day-judge(month,year);
month++;
}
}
else
{
month=month+n;
if(day>judge(month,year))
{
day=day-judge(month,year);
month++;
}
}
}
void Date::add_year(int n)
{
year=year+n;
if(day>judge(month,year))
{
day=day-judge(month,year);
month++;
}
}
bool Date::operator !=(Date& oneDate)
{
if(oneDate.day!=day||oneDate.month!=month||oneDate.year!=year)
return true;
else
return false;
}
bool Date::operator ==(Date& oneDate)
{
if(oneDate.day!=day||oneDate.month!=month||oneDate.year!=year)
return false;
else
return true;
}
bool Date::operator <(Date& oneDate)
{
if(year<oneDate.year||(year==oneDate.year&&month<oneDate.month)||
(year==oneDate.year&&month==oneDate.month&&day<oneDate.day))
return true;
else
return false;
}
bool Date::operator >(Date& oneDate)
{
if(year<oneDate.year||(year==oneDate.year&&month<oneDate.month)||
(year==oneDate.year&&month==oneDate.month&&day<oneDate.day))
return false;
else
return true;
}
bool Date::operator <=(Date& oneDate)
{
if(year<oneDate.year||(year==oneDate.year&&month<oneDate.month)||
(year==oneDate.year&&month==oneDate.month&&day<oneDate.day))
return true;
else
return false;
}
bool Date::operator >=(Date& oneDate)
{
if(year<oneDate.year||(year==oneDate.year&&month<oneDate.month)||
(year==oneDate.year&&month==oneDate.month&&day<oneDate.day))
return false;
else
return true;
}
Date& operator++(Date& oneDate)
{
oneDate.add_day(1);
return oneDate;
}
Date& Date::operator ++(int)
{
Date& temp=*this;
++(*this);
return temp;
}
Date& operator --(Date& oneDate)
{
if(oneDate.day==1)
{
if(oneDate.month==1)
{
oneDate.month=12;
oneDate.day=31;
oneDate.year--;
}
else
{
oneDate.month--;
oneDate.day=oneDate.judge(oneDate.month,oneDate.year);
}
}
else
oneDate.day--;
return oneDate;
}
Date& Date::operator --(int)
{
Date& temp=*this;
--(*this);
return temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -