本课程作业要求使用C++编写程序,通过定义Date类来实现计算两个日期之间的天数。需掌握并运用构造函数、拷贝构造函数及析构函数的正确使用方法,以完成相关功能。
【问题描述】定义一个表示时间的类CTime,能够精确地反映年、月、日、小时、分以及秒,并计算两个日期实例之间相隔的日数。
具体要求如下:
1. 设计私有成员变量:年份(year)、月份(month)、日期(day)、小时(hour)、分钟(minute)和秒(second)。
2. 使用构造函数来初始化类的各个属性,同时需要验证输入的日期与时间的有效性。确保年、月、日、时、分以及秒都在合理的范围内,并考虑到闰年的二月份情况。时间格式应为xx:xx:xx,小时不超过23点,分钟和秒不能超过59。
- 当发现日期无效时,输出“date error! ”并将年份(year)、月份(month)、日期(day)、小时(hour)、分钟(minute)以及秒(second)都设置成0。
- 若时间数据不正确,则显示 “time error!” 并将上述所有成员变量设为零。
- 当输入的日期和时间均有效时,根据提供的参数值对年份(year)、月份(month)、日期(day),小时(hour), 分钟(minute)以及秒(second)进行初始化设置。
- 构造函数的三个默认参数:小时、分、秒,默认为0。同时确保构造函数被调用时输出相应的信息。
3. 实现一个拷贝构造函数,用于将传入对象的所有属性值复制给当前实例,并在执行过程中显示“拷贝构造函数被调用”。
4. 设计析构函数,在类的生命周期结束时释放资源并打印“析构函数被调用”的消息。
5. 编写成员方法 int dayDiff(CTime t),计算当前对象与形参t之间的天数差距,确保结果为非负整数值。在处理日期差异时需要特别关注闰年的规则。
6. 实现一个名为showTime()的方法,用于展示日期信息,并以2020312 11:50:20的格式输出年月日和时间(小时:分钟:秒)。