c++设计一个日期类Date,可以求昨天的日期和明天的日期,输出格式为:年/ 月/日,编写主程序设置当前日期为2003年9月10日,显示昨天的日期和明 天的日期,将日期改为2004年5月4日,显示修改后的日期。
时间: 2024-02-01 08:13:46 浏览: 78
C++实现日期类(Date)
5星 · 资源好评率100%
以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
class Date {
private:
int year, month, day;
public:
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
// 求昨天的日期
Date getYesterday() {
int y = year, m = month, d = day;
if (d == 1) {
if (m == 1) {
y--;
m = 12;
} else {
m--;
}
d = getDaysInMonth(y, m);
} else {
d--;
}
return Date(y, m, d);
}
// 求明天的日期
Date getTomorrow() {
int y = year, m = month, d = day;
if (d == getDaysInMonth(y, m)) {
if (m == 12) {
y++;
m = 1;
} else {
m++;
}
d = 1;
} else {
d++;
}
return Date(y, m, d);
}
// 获取指定年月的天数
int getDaysInMonth(int y, int m) {
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (m == 2 && isLeapYear(y)) {
return 29;
}
return daysInMonth[m];
}
// 判断是否是闰年
bool isLeapYear(int y) {
return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
// 输出日期
void print() {
printf("%d/%02d/%02d\n", year, month, day);
}
};
int main() {
Date d(2003, 9, 10);
cout << "当前日期:" << endl;
d.print();
cout << "昨天的日期:" << endl;
d.getYesterday().print();
cout << "明天的日期:" << endl;
d.getTomorrow().print();
cout << "修改后的日期:" << endl;
d = Date(2004, 5, 4);
d.print();
return 0;
}
```
输出结果为:
```
当前日期:
2003/09/10
昨天的日期:
2003/09/09
明天的日期:
2003/09/11
修改后的日期:
2004/05/04
```
阅读全文