1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #ifndef SYS_TIME_H_
- #define SYS_TIME_H_
- #include <time.h>
- #include <winsock2.h>
- struct timezone
- {
- int tz_minuteswest; /* minutes W of Greenwich */
- int tz_dsttime; /* type of dst correction */
- };
- static __inline int gettimeofday(struct timeval *tp, struct timezone * tzp)
- {
- FILETIME file_time;
- SYSTEMTIME system_time;
- ULARGE_INTEGER ularge;
- static int tzflag;
- GetSystemTime(&system_time);
- SystemTimeToFileTime(&system_time, &file_time);
- ularge.LowPart = file_time.dwLowDateTime;
- ularge.HighPart = file_time.dwHighDateTime;
- tp->tv_sec = (long)((ularge.QuadPart - 116444736000000000Ui64) / 10000000L);
- tp->tv_usec = (long)(system_time.wMilliseconds * 1000);
- if (NULL != tzp)
- {
- if (!tzflag)
- {
- _tzset();
- tzflag++;
- }
- tzp->tz_minuteswest = _timezone / 60;
- tzp->tz_dsttime = _daylight;
- }
- return 0;
- }
- #endif
|