您的位置:首页 > 其它

SYSTEMTIME与time_t相互转换

2007-12-26 13:55 267 查看
void TimetToSystemTime( time_t t, LPSYSTEMTIME pst )
{
   FILETIME ft;
   LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000;
   ft.dwLowDateTime = (DWORD) ll;
   ft.dwHighDateTime = (DWORD)(ll >> 32);

   FileTimeToSystemTime( &ft, pst );
}

void SystemTimeToTimet( SYSTEMTIME st, time_t *pt )
{
   FILETIME ft;
   SystemTimeToFileTime( &st, &ft );

   LONGLONG ll;

   ULARGE_INTEGER ui;
   ui.LowPart = ft.dwLowDateTime;
   ui.HighPart = ft.dwHighDateTime;

   ll = (ft.dwHighDateTime << 32) + ft.dwLowDateTime;

   *pt = (DWORD)((LONGLONG)(ui.QuadPart - 116444736000000000) / 10000000);
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  360