C++ MyDate 类设计与实现:日期操作与时间转换
C++ MyDate 类设计与实现:日期操作与时间转换
本文将详细介绍使用 C++ 语言设计并实现一个名为 MyDate 的类,该类用于处理日期相关操作。
MyDate 类设计
MyDate 类包含以下成员:
- 数据成员:
year: 表示年份的整数。month: 表示月份的整数,从 0 开始计数(0 代表一月)。day: 表示日期的整数。
- 构造函数:
MyDate(): 无参数构造函数,创建一个表示当前日期的 MyDate 对象。MyDate(elapsedTime: long): 使用自 1970 年 1 月 1 日零点以来的秒数 (elapsedTime) 创建 MyDate 对象。MyDate(year: int, month: int, day: int): 使用指定的年、月、日创建一个 MyDate 对象。
- 成员函数:
getYear(): int: 获取年份。getMonth(): int: 获取月份。getDay(): int: 获取日期。setYear(year: int): void: 设置年份。setMonth(month: int): void: 设置月份。setDay(day: int): void: 设置日期。setDate(elapsedTime: long): void: 使用时间戳设置日期。
UML 图
+----------------------+
| MyDate |
+----------------------+
| -year: int |
| -month: int |
| -day: int |
+----------------------+
| +MyDate() |
| +MyDate(elapsedTime: long) |
| +MyDate(year: int, month: int, day: int) |
| +getYear(): int |
| +getMonth(): int |
| +getDay(): int |
| +setYear(year: int): void |
| +setMonth(month: int): void |
| +setDay(day: int): void |
| +setDate(elapsedTime: long): void |
+----------------------+
MyDate 类实现
#include <ctime>
class MyDate {
private:
int year;
int month;
int day;
public:
MyDate() {
time_t currentTime = time(nullptr);
tm* localTime = localtime(¤tTime);
year = localTime->tm_year + 1900;
month = localTime->tm_mon;
day = localTime->tm_mday;
}
MyDate(long elapsedTime) {
setDate(elapsedTime);
}
MyDate(int newYear, int newMonth, int newDay) {
year = newYear;
month = newMonth;
day = newDay;
}
int getYear() const {
return year;
}
int getMonth() const {
return month;
}
int getDay() const {
return day;
}
void setYear(int newYear) {
year = newYear;
}
void setMonth(int newMonth) {
month = newMonth;
}
void setDay(int newDay) {
day = newDay;
}
void setDate(long elapsedTime) {
time_t targetTime = (time_t)elapsedTime;
tm* localTime = localtime(&targetTime);
year = localTime->tm_year + 1900;
month = localTime->tm_mon;
day = localTime->tm_mday;
}
};
int main() {
MyDate date1;
MyDate date2(343555551);
std::cout << "Date 1: " << date1.getYear() << "/" << date1.getMonth() << "/" << date1.getDay() << std::endl;
std::cout << "Date 2: " << date2.getYear() << "/" << date2.getMonth() << "/" << date2.getDay() << std::endl;
return 0;
}
测试程序
测试程序创建了两个 MyDate 对象,一个使用无参构造函数创建当前日期,另一个使用时间戳创建特定日期。最后输出两个日期的年、月、日信息。
总结
MyDate 类提供了一种简单方便的方式来处理日期信息。它包含了多种构造函数,可以根据不同的需求创建日期对象。同时,它也提供了获取和设置日期信息的成员函数,以及使用时间戳设置日期的功能。这个类对于需要进行日期操作的应用程序来说非常实用。
原文地址: https://www.cveoy.top/t/topic/orDE 著作权归作者所有。请勿转载和采集!