日期类Date(程序填空)

//自定义一个简单的日期类
#include <iostream>
#include <cstdlib>
#include <cstring>

using namespace std;

const static int a[]={31,31,28,31,30,31,30,31,31,30,31,30,31};

//--------------------开始:日期类定义-------------------
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
......
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________

//--------------------结束:日期类定义-------------------

//----------------开始:日期类成员函数定义---------------
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
......
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________

//---------------结束:日期类成员函数定义----------------

//>>>>>>>>>>>>>>>>>>>>>主函数开始<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
int main() {
Date d1; //使用缺省值(200.1.1)构造函数定义一个日期对象
//用三个存取(访问)函数输出d1
cout<<"(Default  Constructor)Date d1;----->"<<'{'<<d1.getYear()<<'.'
<<d1.getMonth()<<'.'<<d1.getDay()<<'}'<<endl;
//用输出成员函数输出d1
cout<<"(Default  Constructor)Date d1;----->";  d1.showDate();
cout<<endl<<endl;

Date d2(2015,2,29);
//使用非法日期构造函数定义对象,日期对象将被置为默认值。
//合法日期:年>0,1<=月<12,1<=日<=指定年、月的天数
cout<<"Date d2(2015,2,29);----->";  d2.showDate();  cout<<endl;

Date d3(2008,11,30);   //使用普通构造函数定义对象
cout<<"Date d3(2008,11,30);----->";  d3.showDate();  cout<<endl;

//设置日期(使用三个整数:年、月、日)
//如果给定的日期为非法日期则不修改原有的日期值
d3.setDate(2008,13,8);
cout<<"d3.setDate(2008,13,8);----->";
int y,m,d;
d3.getDate(y,m,d); //获得d3对应的日期值
cout<<'{'<<y<<'.'<<m<<'.'<<d<<'}'<<endl;

//测试非法日期的几种典型情况。
d3.setDate(2016,2,29);
cout<<"d3.setDate(2016,2,29);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,2,0);
cout<<"d3.setDate(2016,2,0);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,11,-1);
cout<<"d3.setDate(2016,11,-1);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,11,31);
cout<<"d3.setDate(2016,11,31);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,00,11);
cout<<"d3.setDate(2016,00,11);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,13,11);
cout<<"d3.setDate(2016,13,11);----->";  d3.showDate();  cout<<endl;
d3.setDate(0,11,11);
cout<<"d3.setDate(0,11,11);----->";  d3.showDate();  cout<<endl;
d3.setDate(-123,11,11);
cout<<"d3.setDate(-123,11,11);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,12,0);
cout<<"d3.setDate(2016,12,0);----->";  d3.showDate();  cout<<endl;
d3.setDate(2016,12,32);
cout<<"d3.setDate(2016,12,32);----->";  d3.showDate();  cout<<endl;

d3.setDate(2008,8,8);
cout<<"d3.setDate(2008,8,8);----->";  d3.showDate();  cout<<endl<<endl;

//用字符串构造日期,(类型)转换构造函数
//日期串可以指定也可以不指定世纪(默认为21世纪)
//日期分隔符可以是"."或"/"或"-"三者之一
//date_format(日期格式)="yyyy.mm.dd"或"dd.mm.yyyy"或"mm.dd.yyyy"
//日期默认格式为中国格式:"yyyy.mm.dd"
Date d4("10/27/06","mm/dd/yyyy");
cout<<"Date d4(\"10/27/06\",\"mm/dd/yyyy\");----->";  d4.showDate();  cout<<endl;

Date d5("6.3.3"); //日期串长度错误[6,10]!
cout<<"Date d5(\"6.3.3\");----->";  d5.showDate();  cout<<endl;

Date d6("06_3_3");
//日期分隔符只能是“.”或“/”或“-”三者之一!
cout<<"Date d6(\"06_3_3\");----->";  d6.showDate();  cout<<endl;

Date d7("06.3-3");
//两个日期分隔符必须一致!
cout<<"Date d7(\"06.3-3\");----->";  d7.showDate();  cout<<endl;

Date d8("06.3.3"); //默认为21世纪
cout<<"Date d8(\"06.3.3\");----->";  d8.showDate();  cout<<endl;

Date d9("10/28/1990","mm.dd.yyyy");
cout<<"Date d9(\"10/28/1990\",\"mm.dd.yyyy\");----->";  d9.showDate();  cout<<endl;

d9.setDate("10-31-1980","dd-mm-yyyy");
cout<<"d9.setDate(\"10-31-1980\",\"dd-mm-yyyy\");----->";  d9.showDate();  cout<<endl;

d9.setDate("10-31-1980","mm-dd-yyyy");
cout<<"d9.setDate(\"10-31-1980\",\"mm-dd-yyyy\");----->";  d9.showDate();  cout<<endl;

d9.setDate("06-3-19");
cout<<"d9.setDate(\"06-3-19\");----->";  d9.showDate();  cout<<endl<<endl;

d9="1960.11.11";
cout<<"d9=\"1960.11.11\";----->";  d9.showDate();  cout<<endl;
d9=Date("1980-12-12");
cout<<"d9=Date(\"1980-12-12\");----->";  d9.showDate();  cout<<endl;
Date d10("80/10/10");
cout<<"Date d10(\"80/10/10\");----->";  d10.showDate();  cout<<endl<<endl;

d2.setDate(1984,7,1);
cout<<"d2.setDate(1984,7,1);----->";  d2.showDate();  cout<<endl;
//计算日期+整数(值可为正、负和零)
d2.addDay(0);
cout<<"d2.addDay(0);----->";  d2.showDate();  cout<<endl;
d2.addDay(-1390);
cout<<"d2.addDay(-1390);----->";  d2.showDate();  cout<<endl;

d2.setDate(1990,2,5);
cout<<"d2.setDate(1990,2,5);----->";  d2.showDate();  cout<<endl;
d2.addDay(9488);
cout<<"d2.addDay(9488);----->";  d2.showDate();  cout<<endl;

d2.setDate(1990,9,10);
cout<<"d2.setDate(1990,9,10);----->";  d2.showDate();  cout<<endl;
d2.addDay(9271);
cout<<"d2.addDay(9271);----->";  d2.showDate();  cout<<endl<<endl;

d2.setDate(1984,7,1);
d3.setDate(1980,9,10);
cout<<"d2:";  d2.showDate();
cout<<",d3:";  d3.showDate();
cout<<",d2-d3="<<d2.dateSubDate(d3)<<endl;

d2.setDate(1990,2,5);
d3.setDate(2016,1,28);
cout<<"d2:";  d2.showDate();
cout<<",d3:";  d3.showDate();
//计算日期-日期的值(值可为正、负和零)
cout<<",d2-d3="<<d2.dateSubDate(d3)<<endl;

d2.setDate(1990,9,10);
d3.setDate(2016,1,28);
cout<<"d2:";  d2.showDate();
cout<<",d3:";  d3.showDate();
cout<<",d2-d3="<<d2.dateSubDate(d3)<<endl;

return 0;
}
//>>>>>>>>>>>>>>>>>>>>>主函数结束<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

输出样例

(Default  Constructor)Date d1;----->{2000.1.1}
(Default  Constructor)Date d1;----->{2000.1.1}

Date d2(2015,2,29);----->{2000.1.1}
Date d3(2008,11,30);----->{2008.11.30}
d3.setDate(2008,13,8);----->{2008.11.30}
d3.setDate(2016,2,29);----->{2016.2.29}
d3.setDate(2016,2,0);----->{2016.2.29}
d3.setDate(2016,11,-1);----->{2016.2.29}
d3.setDate(2016,11,31);----->{2016.2.29}
d3.setDate(2016,00,11);----->{2016.2.29}
d3.setDate(2016,13,11);----->{2016.2.29}
d3.setDate(0,11,11);----->{2016.2.29}
d3.setDate(-123,11,11);----->{2016.2.29}
d3.setDate(2016,12,0);----->{2016.2.29}
d3.setDate(2016,12,32);----->{2016.2.29}
d3.setDate(2008,8,8);----->{2008.8.8}

Date d4("10/27/06","mm/dd/yyyy");----->{2006.10.27}
Date d5("6.3.3");----->{2000.1.1}
Date d6("06_3_3");----->{2000.1.1}
Date d7("06.3-3");----->{2000.1.1}
Date d8("06.3.3");----->{2006.3.3}
Date d9("10/28/1990","mm.dd.yyyy");----->{1990.10.28}
d9.setDate("10-31-1980","dd-mm-yyyy");----->{1990.10.28}
d9.setDate("10-31-1980","mm-dd-yyyy");----->{1980.10.31}
d9.setDate("06-3-19");----->{2006.3.19}

d9="1960.11.11";----->{1960.11.11}
d9=Date("1980-12-12");----->{1980.12.12}
Date d10("80/10/10");----->{2080.10.10}

d2.setDate(1984,7,1);----->{1984.7.1}
d2.addDay(0);----->{1984.7.1}
d2.addDay(-1390);----->{1980.9.10}
d2.setDate(1990,2,5);----->{1990.2.5}
d2.addDay(9488);----->{2016.1.28}
d2.setDate(1990,9,10);----->{1990.9.10}
d2.addDay(9271);----->{2016.1.28}

d2:{1984.7.1},d3:{1980.9.10},d2-d3=1390
d2:{1990.2.5},d3:{2016.1.28},d2-d3=-9488
d2:{1990.9.10},d3:{2016.1.28},d2-d3=-9271

日期类定义,你要定义,年,月,日,时,分,秒的成员变量,然后根据是闰年,或者不是闰年,计算2月份的天数,分别生成对应的set,get方法就可以了

再定义一个函数,按照日期格式拼接在一起返回

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632