c++设计实现时间类,24小时制,记录时,分
时间: 2024-05-09 22:22:15 浏览: 74
,秒,并能进行时间的加减运算。
下面是一个可能的实现:
```cpp
class Time {
private:
int hour;
int minute;
int second;
public:
Time(int h = 0, int m = 0, int s = 0) : hour(h), minute(m), second(s) {}
void setTime(int h = 0, int m = 0, int s = 0) {
hour = h;
minute = m;
second = s;
}
void print() {
printf("%02d:%02d:%02d\n", hour, minute, second);
}
Time operator+(const Time& b) const {
Time res(hour + b.hour, minute + b.minute, second + b.second);
res.fix();
return res;
}
Time operator-(const Time& b) const {
Time res(hour - b.hour, minute - b.minute, second - b.second);
res.fix();
return res;
}
private:
void fix() {
minute += second / 60;
second %= 60;
hour += minute / 60;
minute %= 60;
hour %= 24;
}
};
```
这里的`fix`方法是为了处理进位和退位。可以看到,加减操作都是通过直接创建一个新的`Time`对象来实现的。需要注意的是,这种实现方式并没有处理时间跨天的情况。如果需要支持时间跨天,可以在加减运算之后特判处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)