设计能计算的日期类 Date,能进行设置日期,判断是否闰年,判断是否月末,计算日期增加天数,计算两个日期间的天数,输出各种格式的日期等,并编写 main 函数进行测试。程序命名为lab2_2.cpp。
时间: 2024-11-04 07:13:34 浏览: 39
设计一个名为`Date`的类,用于处理日期相关的操作,可以包含以下几个关键成员函数:
1. 构造函数:用于初始化日期,例如`Date(int year, int month, int day)`,接受年、月、日作为输入。
2. 设置日期:`void setDate(int year, int month, int day)`,允许用户修改日期。
3. 判断是否闰年:`bool isLeapYear()`,根据公历规则(闰年每四年一次,但百年不闰,四百年再闰)来判断给定的年份是否为闰年。
4. 判断是否月末:`bool isEndOfMonth()`,检查当前日期是否等于该月的最大天数。
5. 增加天数:`Date addDays(int days)`,接收整数天数并返回一个新的Date对象,表示原日期加上指定天数后的日期。
6. 计算两个日期之间的天数差:`int daysBetween(Date &otherDate)`,计算当前日期与另一个Date对象之间的天数。
7. 输出日期:提供多种格式的输出方法,如`string toString(string format = "yyyy-MM-dd")`,其中`format`是一个字符串模板,可以自定义输出格式。
在`main`函数中,我们可以创建`Date`的对象,设置日期,然后演示各个功能,例如判断闰年、查看月份最大天数、添加天数以及比较日期差等。
```cpp
#include <iostream>
#include <string>
class Date {
public:
// 构造函数和设置日期
Date(int year, int month, int day) : year(year), month(month), day(day) {}
void setDate(int y, int m, int d) { year = y; month = m; day = d; }
// ...其他函数...
private:
int year, month, day;
};
// 主函数示例
int main() {
Date date(2023, 2, 28);
std::cout << "Today's date is: " << date.toString("yyyy-MM-dd") << '\n';
if (date.isLeapYear()) {
std::cout << "This year is a leap year.\n";
} else {
std::cout << "This year is not a leap year.\n";
}
// 更多日期操作...
return 0;
}
```
阅读全文