📄 date.cpp
字号:
//Date类的实现
#include "date.h"
#include "datelegal.h"
#include "funs.h"
//-------------------------------------------------------------
Date::Date(){};
Date::Date(int y,int m,int d)
{
Date::SetDate(y,m,d);
}
Date::Date(string sdate)
{
Date::SetDate(sdate);
}
Date::Date(const Date& prim)
{
year=prim.year;
month=prim.month;
day=prim.day;
}
Date::~Date() {};
void Date::ShowDate()
{
cout << day << "/" << month << "/" << year <<endl;
}
void Date::SetDate(int y,int m,int d)
{
DateLegal dateleg(y,m,d);
if (dateleg.fine())
{
year=y;
month=m;
day=d;
}
else
{
cout << "您输入的日期不合法,日期被设为默认值1900/01/01\n";
year=1900;
month=1;
day=1;
}
}
void Date::SetDate(string sdate)
{
if ( !sdate2date(sdate,year,month,day) )
{
cout << "您输入的日期不合法,日期被设为默认值:1900/01/01\n";
year=1900;
month=1;
day=1;
return;
}
DateLegal DLdate(year,month,day);
if( !DLdate.fine() )
{
cout << "您输入的日期不合法,日期被设为默认值:1900/01/01\n";
year=1900;
month=1;
day=1;
return;
}
}
void Date::NextDay()
{
DateLegal dateleg(year,month,day+1);
if ( !dateleg.day_legal() )
{
day=1;
month++;
dateleg.DLsetdate(year,month,day);
}
else
{
day++;
}
if ( !dateleg.month_legal() )
{
month=1;
year++;
dateleg.DLsetdate(year,month,day);
}
if( !dateleg.year_legal() )
{
cout <<"日期加一天后将会超过合法范围,现将日期设为默认值:"
<< "1900/01/01\n";
Date::SetDate(1900,1,1);
}
}
string Date::ToString()
{
char ty[4];
char tm[2];
char td[2];
return string(itoa(year,ty,10))+"/"+string(itoa(month,tm,10))+"/"
+string(itoa(day,td,10));
}
string Date::ToString(int type)
{
char ty[4];
char tm[2];
char td[2];
switch(type)
{
case 1:
return Date::ToString();
break;
case 2:
return string(itoa(year,ty,10))+"-"+string(itoa(month,tm,10))+"-"
+string(itoa(day,td,10));
break;
case 3:
return string(itoa(year,ty,10))+"年"+string(itoa(month,tm,10))+"月"
+string(itoa(day,td,10))+"日";
break;
default:
return "Selected Tyep Error!";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -