声明一个时间类date,包含年月日三个数据成员,类中包括设置日期的setdate函数以及“年月日”的格式显示日期值的showdate函数,使日期增加一天都addone函数,定义主函数,定义日期对象,设置日期,使日期增加一天并显示日期
时间: 2024-09-25 22:05:58 浏览: 95
好的,我们可以创建一个名为`Date`的时间类,包含`year`, `month`, 和 `day` 作为私有数据成员。以下是该类的简单实现:
```cpp
#include <iostream>
class Date {
private:
int year;
int month;
int day;
public:
// 构造函数,初始化日期
Date(int y = 0, int m = 1, int d = 1) : year(y), month(m), day(d) {}
// 设置日期
void setDate(int new_year, int new_month, int new_day) {
year = new_year;
month = new_month;
day = new_day;
}
// "年月日"格式显示日期
std::string showDate() const {
return std::to_string(year) + "年" + std::to_string(month) + "月" + std::to_string(day) + "日";
}
// 使日期增加一天
void addOneDay() {
if (day != 31 && ((month == 1 && day <= 28) || (month > 1 && (month % 2 != 0 || (month == 2 && day <= 29))))) { // 普通月份或闰年的2月
day++;
} else if (month == 2 && isLeapYear()) { // 跳过闰年的2月最后一天
day = 1;
} else if (month == 2 && isLeapYear() && day == 29) { // 闰年的2月29日
day = 1;
} else if (month == 12 && day == 31) { // 如果已经是12月31日,则进入下一年
day = 1;
month = 1;
}
}
// 判断是否为闰年
bool isLeapYear() const {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
};
// 主函数
int main() {
Date myDate(2023, 3, 5); // 创建一个日期对象,设定初始日期
myDate.setDate(2024, 2, 29); // 设置特定日期
std::cout << "初始日期: " << myDate.showDate() << std::endl; // 显示当前日期
myDate.addOneDay(); // 增加一天
std::cout << "增加一天后的日期: " << myDate.showDate() << std::endl; // 再次显示日期
return 0;
}
```
这个程序首先定义了一个`Date`类,包含了设置日期、显示日期和增加一天的功能。在`main`函数中,我们创建了一个日期对象并设置了日期,然后展示了原始日期和增加一天后的日期。
阅读全文