2014-12-27 69 views
0

所以...我想比较当前日期和我初始化的日期。我有这个代码,但它总是进入如果比较,即使日期不同。请帮忙吗?比较当前时间与给定时间

int main() 
{ 
    time_t rawtime; 
    struct tm data; 

    data.tm_year=2014-1900; 
    data.tm_mon=12-1; 
    data.tm_mday=27; 
    data.tm_hour=17; 
    data.tm_min=4; 
    data.tm_sec=0; 

    time (&rawtime); 

    if(mktime(&data) == time(&rawtime)) 

    { 
    printf("Same date\n"); 
    } 

    return 0; 
} 
+0

你的可能,我的不(没有打印)。用VS编写(如果包含#includes)。这是你的*精确*程序吗? – 2014-12-27 17:44:16

回答

0

您的比较是错误的,应该是

if (mktime(&data) == rawtime) 

或者只是

if (mktime(&data) == time(NULL)) 

也initiazlize 所有struct tm data;领域或

memset(&data, 0, sizeof data); 
+0

'time()'返回与写入指针参数(如果提供)相同的值。 “时间函数根据系统时钟返回1970年1月1日午夜(00:00:00),协调世界时(UTC)后经过的秒数,返回值存储在定时器给定的位置。 “ – 2014-12-27 17:47:25

+0

@WeatherVane是的,这就是为什么我提出第二种方法,如果OP不需要存储'time()'的返回值,那么第二种方法是首选的,至少我更喜欢它。 – 2014-12-27 17:51:25

+0

你如何测试它? – 2014-12-27 17:55:55

相关问题