我试图做一个卡伦德,所以我使用的time_t和localtime_s存储时间和日期信息,然后将其存储在日历类的单个成员:日历功能崩溃“localtime_s”
void Callendar::Initialize()
{
time_t now = time(0);
tm *localTime = null;
localtime_s(localTime, &now);
LocalSeconds = localTime->tm_sec;
LocalMinutes = localTime->tm_min;
LocalHours = localTime->tm_hour;
LocalDays = localTime->tm_mday;
LocalMonths = localTime->tm_mon;
LocalYears = localTime->tm_year;
DaysSinceSunday = localTime->tm_wday;
DaysSinceJanuaryFirst = localTime->tm_yday;
HoursDaylightSavings = localTime->tm_isdst;
}
所有编译好,但在运行时,我得到:
调试断言失败!
程序:C:\用户\ MYPC \桌面\框架\框架\调试\ Framework.exe 文件:F:\ DD \ vctools \ crt_bld \ self_x86 \ CRT \ SRC \ loctim64.c行:69
表达:(!PTM = NULL)
后,我关闭失败的断言消息,我在这条线得到一个非标准的调试错误:
static __inline errno_t __CRTDECL localtime_s(struct tm * _Tm, const time_t * _Time)
{
return _localtime64_s(_Tm, _Time);
}
这基本上是调用* localtime_s的结果(localTime,&现在); *在日历:初始化() 我可能使用这个功能的一个弃用版本吗?我知道还有其他的功能来获取本地时间,但我不知道哪个是“正确的”。已经向我建议我不应该使用'localtime',但看似localtime_s也不行。