C++ 设计一个多功能的MyDate类
题目要求
设计一个多功能的MyDate类,且有一个Time类的对象成员,设计多个重载的构造函数,可以设置日期和时间,按12小时制输出时间。
注意:
(1)请考虑设置日期和时间的合理性(如:时0-23; 分0-59;秒0-59)。
(2)12小时制中,12:00:00前为AM, 12:00:00及以后为PM
(3)构造函数:没参数时,设置时间为1900年1月1日,0时 0分 0秒;有参数时,设置成给定的日期和时间
在主函数中
(1)声明两个对象dt1,dt2,并通过构造函数初始化它们(dt2初始化为为2021年5月13日8:10:30)
(2)显示按12小时制显示dt1、dt2的日期和时间。
(3)再设置dt1的时间,数据由用户输入。
PS:我用的是visual studio 2019,所以不用加一些头文件
代码部分
#include<iostream>
#include <iomanip>
using namespace std;
/*
设计一个多功能的MyDate类,且有一个Time类的对象成员,设计多个重载的构造函数,可以设置日期和时间,按12小时制输出时间。
注意:
(1)请考虑设置日期和时间的合理性(如:时0-23; 分0-59;秒0-59)。
(2)12小时制中,12:00:00前为AM, 12:00:00及以后为PM
(3)构造函数:没参数时,设置时间为1900年1月1日,0时 0分 0秒;有参数时,设置成给定的日期和时间
在主函数中
(1)声明两个对象dt1,dt2,并通过构造函数初始化它们(dt2初始化为为2021年5月13日8:10:30)
(2)显示按12小时制显示dt1、dt2的日期和时间。
(3)再设置dt1的时间,数据由用户输入。
*/
class Time
{
int hour;
int minutes;
int second;
public:
Time()
{
hour = 0;
minutes = 0;
second = 0;
}
Time(int x, int y, int z)
{
hour = x;
minutes = y;
second = z;
}
void output()
{
if (hour>23||minutes>59||second>59)
{
cout << "数据错误" << endl;
}
else if (hour<=12)
{
cout << "AM:" << setfill('0') << setw(2) << hour << ":"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << second << endl;
}
else
{
cout << "PM:" << setfill('0') << setw(2) << hour-12 << ":"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << second << endl;
}
}
};
class MyDate
{
int year, month, day;
Time time;
public:
MyDate()
{
year = 1900;
month = 1;
day = 1;
}
MyDate(int x, int y, int z,int o,int p,int q):time(o,p,q)
{
year = x;
month = y;
day = z;
}
void output()
{
cout << year << "年" << setfill('0') << setw(2) << month << "月" << setfill('0') << setw(2) << day << "日" << "\t";
time.output();
}
};
int main()
{
MyDate dt1, dt2(2021, 5, 13,8,10,30),
dt3(2021, 5, 13, 15, 10, 30),
dt4(2021, 5, 13, 35, 10, 30),
dt5(2021, 5, 13, 8, 87, 30),
dt6(2021, 5, 13, 8, 10, 65);
dt1.output();
dt2.output();
dt3.output();
dt4.output();
dt5.output();
dt6.output();
return 0;
}
效果图