我有一堂课讲日期。
当我尝试使用相同的值对其进行初始化时,第一个实例可以正常工作,但所有其他实例每次都返回不同的值。我将日期保留在time_t DATE变量中。

其构造函数:

CDate (int y,int m,int d)
    {
     tm * datetmp ;
     datetmp = localtime (&DATE);
     datetmp->tm_year = y - 1900;
     datetmp->tm_mon = m - 1;
     datetmp->tm_mday = d;
     DATE=mktime ( datetmp );
    }


主要:

CDate a ( 2000, 1, 30 );
CDate b ( 2000, 2, 27 );
cout <<a.DATE <<endl;
cout << b.DATE << endl;


每次运行后的结果:

949240864
951646384

949240864
951605568

949240864
951632960

949240864
951617456

949240864
951662240

最佳答案

我不太确定这段代码应该如何工作,但是我想你想要这样的东西:

CDate (int y,int m,int d)
{
    tm datetmp;
    memset(&datetmp, 0, sizeof(datetmp));
    datetmp.tm_year = y - 1900;
    datetmp.tm_mon = m - 1;
    datetmp.tm_mday = d;
    DATE = mktime(datetmp);
}

关于c++ - Mktime返回不同​​的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29593571/

10-11 19:18