__time32_t NXtimet64to32(__time64_t t64) { tm t; _localtime64_s(&t, &t64); // ERR __time32_t r = _mktime32(&t); if(r == -1) { R(-1, "mktime error"); return _time32(NULL); } return r; }
__time32_t NXdostimeto32(__time32_t dostime) { tm t; memset(&t, 0, sizeof(tm)); t.tm_sec = 2 * (dostime & 0x1f); t.tm_min = (dostime >> 5) & 0x3f; t.tm_hour = (dostime >> 11) & 0x1f; t.tm_mday = (dostime >> 16) & 0x1f; t.tm_mon = ((dostime >> 21) & 0x0f) - 1; t.tm_year = ((dostime >> 25) & 0x7f) + 1980 - 1900; __time32_t r = _mktime32(&t); if(r == -1) { R(-1, "mktime error"); return _time32(NULL); } return r; }
time_t __cdecl mktime(struct tm *_Tm) { return _mktime32(_Tm); }