【问题标题】:trying to compare time using string compare [closed]尝试使用字符串比较来比较时间 [关闭]
【发布时间】:2016-07-18 01:05:35
【问题描述】:

我正在构建此代码,将当前时间增加 10 秒,然后将更新时间与实际时间进行比较,当它们匹配时,将打印一条消息。 这是我的代码。谁能告诉我哪里出错了。 这是我的代码:

    #include <stdio.h>
    #include <time.h>

    int main(int argc, char **argv)
    {
            time_t timeNow;
            time_t timeAct;
            struct tm* time_info;
            time(&timeNow);
            time(&timeAct);
            time_info = localtime(&timeNow);
            char timeStr[sizeof"HH:MM:SS"];
            char timeN[sizeof"HH:MM:SS"];

            strftime(timeStr, sizeof(timeStr), "%H:%M:%S", time_info);
            printf("Time now: %s\n", timeStr);


            timeNow += 10;
            time_info = localtime(&timeNow);
            strftime(timeStr, sizeof(timeStr), "%H:%M:%S", time_info);
            printf("New time: %s\n", timeStr);

            time_info=localtime(&timeAct);
            strftime(timeN, sizeof(timeN), "%H:%M:%S", time_info);
            printf("time Actual: %s\n",timeN);


            while(1)
            {
                    if(strcmp(timeStr,timeN) == 0)
                    {
                            printf("hi");
                    }
            }
}

我认为字符串比较有问题。不过不确定!

这是输出:

Time now: 12:41:17
New time: 12:41:27
time Actual: 12:41:17

标签: c string time compare time.h


【解决方案1】:

您在循环之前设置了一次“实际”时间字符串 (timeN)。需要在循环中连续设置,否则永远不会改变。

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多