gpt4 book ai didi

c++ - C/C++ time.h,错误的时间打印出来,时间的比较

转载 作者:行者123 更新时间:2023-11-30 17:13:08 24 4
gpt4 key购买 nike

好吧,我正在尝试 time.h,我想做的是创建本地时间并将其与设定时间(triggerTime)进行比较。听起来很简单,但实际上并非如此,我确定我没有正确初始化我的 time_t trigTime ,因为当我调用 printf("At the Tone, the time will be: %s", ctime(&trigTime));它返回 Wen Dec 31 1969 而不是我设置的日期。有什么问题吗?更进一步,我如何获取triggerTime并用它初始化struct *tm,然后将其与localTimeInfo进行比较?

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

int main()
{//start main

/****************CURRENT TIME**************************************************/
struct tm *localTimeInfo;//structure to be used to format Local Time
time_t localTime;//create a local time
time(&localTime);//Get the value of local time
localTimeInfo = localtime(&localTime);//store the value of localTime to localTimeInfo

printf("At the Tone, the time will be: %s", asctime(localTimeInfo));
/*****************END CURRENT TIME*********************************************/


/*****************TRIGGER TIME*************************************************/
char *triggerTime = "23 2:30:00 2015";

struct tm *triggerTimeInfo;
time_t trigTime = *triggerTime;

printf("At the Tone, the time will be: %s", ctime(&trigTime));



/*********************END TRIGGER TIME*****************************************/


return 0;

}//end main

最佳答案

*triggerTime'2' - 字符串的第一个字符。这确实是一个非常小的值,因此您得到一个非常接近 time_t 纪元的日期也就不足为奇了。 C 并不是真正的类型安全,所以它不会捕获这样的错误。请参阅 samgak 的评论,了解如何正确执行此操作的想法。

关于c++ - C/C++ time.h,错误的时间打印出来,时间的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com