📜  从C++中的用户设置时间开始的数字时钟(1)

📅  最后修改于: 2023-12-03 14:49:20.302000             🧑  作者: Mango

从C++中的用户设置时间开始的数字时钟

数字时钟是一种可以显示当前时间的设备。在C++中,我们可以使用用户设置的时间来创建一个数字时钟程序。本文将介绍如何使用C++编写一个从用户输入设置时间开始的数字时钟程序。

功能描述

该程序将提供以下功能:

  1. 提示用户输入小时、分钟和秒钟,并保存这些值。
  2. 定时更新数字时钟显示,以显示每秒的时间。
  3. 当到达用户输入的时间时,程序将发出提醒。
实现思路

要实现以上功能,我们将按照以下步骤进行:

  1. 使用cin命令提示用户输入小时、分钟和秒钟,并将这些值存储在变量中。
  2. 使用一个循环,每秒钟更新一次时钟显示。在每次更新时,将当前时间显示在屏幕上。
  3. 在循环中,检查当前时间是否等于用户输入的时间。如果相等,则发出提醒。
代码示例

以下是一个使用C++编写的从用户输入设置时间开始的数字时钟程序的示例:

#include <iostream>
#include <ctime>
#include <chrono>
#include <thread>

using namespace std;
using namespace chrono;

// 获取当前时间
void getCurrentTime(int& hour, int& minute, int& second) {
    time_t currentTime = time(nullptr);
    tm* localTime = localtime(&currentTime);
    hour = localTime->tm_hour;
    minute = localTime->tm_min;
    second = localTime->tm_sec;
}

// 检查时间是否与用户输入的时间相等
bool isTimeEqualToUserInput(int hour, int minute, int second, int userInputHour, int userInputMinute, int userInputSecond) {
    return hour == userInputHour && minute == userInputMinute && second == userInputSecond;
}

int main() {
    int userInputHour, userInputMinute, userInputSecond;

    // 提示用户输入时间
    cout << "请输入小时:";
    cin >> userInputHour;
    cout << "请输入分钟:";
    cin >> userInputMinute;
    cout << "请输入秒钟:";
    cin >> userInputSecond;

    // 每秒钟更新一次时钟显示
    while (true) {
        int hour, minute, second;
        getCurrentTime(hour, minute, second);
        cout << "当前时间:" << hour << ":" << minute << ":" << second << endl;

        // 检查当前时间是否与用户输入的时间相等
        if (isTimeEqualToUserInput(hour, minute, second, userInputHour, userInputMinute, userInputSecond)) {
            cout << "时间到!" << endl;
            break;
        }

        // 程序每秒钟休眠一次
        this_thread::sleep_for(seconds(1));
    }

    return 0;
}
运行示例

输入用户设置的时间,然后程序将开始运行直到到达用户输入的时间。

命令行输出示例:

请输入小时:12
请输入分钟:30
请输入秒钟:0
当前时间:15:45:30
当前时间:15:45:31
当前时间:15:45:32
...
当前时间:12:30:0
时间到!

在以上示例中,用户设置的时间是12:30:00,程序将每秒钟更新一次当前时间的显示,直到显示的时间与用户设置的时间相等时,发出提醒"时间到!"。