SYSTEMTIME 与 time_t 之间的转换,计算2个SYSTEMTIME的时间差

[cpp] view plain copy
 
  1. time_t systemtime_to_time_t(const SYSTEMTIME& st)  
  2. {  
  3.     struct tm gm = {st.wSecond, st.wMinute, st.wHour, st.wDay, st.wMonth-1, st.wYear-1900, st.wDayOfWeek, 0, 0};  
  4.     return mktime(&gm);  
  5. }  
  6.   
  7. SYSTEMTIME time_t_to_systemtime(time_t t)  
  8. {  
  9.     tm temptm = *localtime(&t);  
  10.     SYSTEMTIME st = {1900 + temptm.tm_year,   
  11.         1 + temptm.tm_mon,   
  12.         temptm.tm_wday,   
  13.         temptm.tm_mday,   
  14.         temptm.tm_hour,   
  15.         temptm.tm_min,   
  16.         temptm.tm_sec,   
  17.         0};  
  18.     return st;  
  19. }  


https://blog.csdn.net/hellokandy/article/details/51329446

MFC版本的计算两个SYSTEMTIME之间的时间差,返回毫秒:

[cpp] view plain copy
 
  1. __int64 TimeDiff(SYSTEMTIME left, SYSTEMTIME right)    
  2. {  
  3.     CTime tmLeft(left.wYear, left.wMonth, left.wDay, 0, 0, 0);  
  4.     CTime tmRight(right.wYear, right.wMonth, right.wDay, 0, 0, 0);  
  5.       
  6.     CTimeSpan sp = tmLeft - tmRight;  
  7.     long MillisecondsL = (left.wHour*3600 + left.wMinute*60 + left.wSecond)*1000 + left.wMilliseconds;    
  8.     long MillisecondsR = (right.wHour*3600 + right.wMinute*60 + right.wSecond)*1000 + right.wMilliseconds;    
  9.   
  10.     return  (__int64)sp.GetDays()*86400000 + (MillisecondsL - MillisecondsR);//此处返回毫秒  
  11. }  

https://blog.csdn.net/hellokandy/article/details/51329183

原文地址:https://www.cnblogs.com/findumars/p/8732308.html