用C++编写一个简单程序,定义一个日期类,它能表示年、月、日。设计一个NewDay() 成员函数,增加一天日期,要求不能用std:cont形式
时间: 2024-12-06 17:25:21 浏览: 101
在C++中,我们可以定义一个日期类Date,包含年份、月份和日期的私有变量,并提供一个自增一天的成员函数`NewDay()`。由于题目要求避免使用`std::container`,我们不会涉及到容器的使用,而是直接操作单个日期。以下是这样的一个简单实现:
```cpp
#include <iostream>
#include <ctime>
class Date {
private:
int year;
int month;
int day;
// 获取当前日期(方便测试)
inline void setToCurrentDate() {
time_t now = time(0);
struct tm* current_time = localtime(&now);
year = current_time->tm_year + 1900; // 添加1900偏移
month = current_time->tm_mon + 1; // 月份从0开始计数,加1
day = current_time->tm_mday;
}
public:
// 构造函数
Date(int year = 0, int month = 1, int day = 1)
: year(year), month(month), day(day) {}
// 自增一天
void NewDay() {
if (month == 2 && isLeapYear()) { // 判断是否为闰年的2月
if (day == 29) {
day = 1;
if (month != 12) {
month++;
} else {
month = 1;
year++;
}
} else {
day++;
}
} else {
day++;
}
}
// 判断是否为闰年
bool isLeapYear() const {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return true;
}
return false;
}
// 打印日期
void displayDate() const {
std::cout << "Year: " << year << ", Month: " << month << ", Day: " << day << std::endl;
}
// 初始化当前日期
void initializeFromCurrent() {
setToCurrentDate();
}
};
int main() {
Date today;
today.initializeFromCurrent(); // 设置为当前日期
for (int i = 0; i < 7; i++) {
today.NewDay();
today.displayDate();
}
return 0;
}
```
在这个例子中,我们通过`setToCurrentDate()`函数获取当前日期,然后在`NewDay()`函数中处理平闰年的情况以及月份的变化。`initializeFromCurrent()`函数用于将日期设置为当前系统日期。
阅读全文
相关推荐


















