在时钟基础上加闹钟c++
时间: 2024-10-13 12:05:30 浏览: 22
在C++中,如果你想要创建一个模拟时钟并添加闹钟功能,你可以使用`chrono`库来处理时间,并结合一些基本的数据结构如`std::vector`来存储多个闹钟。以下是一个简单的例子:
```cpp
#include <iostream>
#include <chrono>
#include <thread> // 用于线程操作
#include <vector>
class Alarm {
public:
std::chrono::time_point<std::chrono::system_clock> trigger_time;
std::string message;
Alarm(const std::string& time_string, const std::string& message) {
auto t = parseTime(time_string);
this->trigger_time = t;
this->message = message;
}
void setAlarm() {
while (std::chrono::system_clock::now() < trigger_time) {
// 检查是否已经到了闹钟触发的时间
if (checkIfAlarmTriggered()) {
std::cout << "闹钟响起: " << message << "\n";
break;
}
// 等待一段时间再检查
std::this_thread::sleep_for(std::chrono::seconds(1));
}
}
private:
bool checkIfAlarmTriggered() {
return std::chrono::system_clock::now() >= trigger_time;
}
std::chrono::time_point<std::chrono::system_clock> parseTime(const std::string& time_string) {
// 这里只是一个简化示例,实际解析可能需要更复杂的日期/时间格式转换
// 时间字符串可以转化为秒数或其他合适单位,这里假设可以直接比较
return std::chrono::system_clock::from_time_t(std::mktime(std::strptime(time_string.c_str(), "%H:%M")));
}
};
int main() {
std::vector<Alarm> alarms = {
{"08:00", "早安闹钟"},
{"18:00", "下班提醒"}
};
for (const auto& alarm : alarms) {
alarm.setAlarm();
}
// 主程序持续运行,等待闹钟触发
std::this_thread::sleep_for(std::chrono::hours(24));
return 0;
}
```
在这个例子中,我们首先定义了一个`Alarm`类,包含闹钟触发时间和消息。然后在`setAlarm`函数中,我们不断地检查当前时间是否到达了设置的时间,如果到了则打印出提醒信息并停止。
阅读全文