timeconv.c

Go to the documentation of this file.
00001 #include "define.h"
00002 
00003 
00004 
00005 char* pst_fileTimeToAscii(const FILETIME* filetime, char* result) {
00006     time_t t;
00007     t = pst_fileTimeToUnixTime(filetime);
00008     return ctime_r(&t, result);
00009 }
00010 
00011 
00012 void pst_fileTimeToStructTM (const FILETIME *filetime, struct tm *result) {
00013     time_t t1;
00014     t1 = pst_fileTimeToUnixTime(filetime);
00015     gmtime_r(&t1, result);
00016 }
00017 
00018 
00019 time_t pst_fileTimeToUnixTime(const FILETIME *filetime)
00020 {
00021     uint64_t t = filetime->dwHighDateTime;
00022     const uint64_t bias = 11644473600LL;
00023     t <<= 32;
00024     t += filetime->dwLowDateTime;
00025     t /= 10000000;
00026     t -= bias;
00027     return ((t > (uint64_t)0x000000007fffffff) && (sizeof(time_t) <= 4)) ? 0 : (time_t)t;
00028 }
00029 

Generated on 6 Jul 2016 for 'LibPst' by  doxygen 1.6.1