37#define SECSPERDAY 86400
39#define SECS_1601_TO_1970 ((369 * 365 + 89) * (ULONGLONG)SECSPERDAY)
40#define TICKSPERSEC 10000000
41#define TICKSPERMSEC 10000
42#define TICKS_1601_TO_1970 (SECS_1601_TO_1970 * TICKSPERSEC)
45#define NEWYEAR_1980_HI 0x01a8e79f
46#define NEWYEAR_1980_LO 0xe1d58000
48#define MAYDAY_2002_HI 0x01c1f107
49#define MAYDAY_2002_LO 0xb82b6000
51#define ATIME_HI 0x1c2349b
52#define ATIME_LOW 0x580716b0
54#define LOCAL_ATIME_HI 0x01c23471
55#define LOCAL_ATIME_LOW 0x6f310eb0
57#define DOS_DATE(y,m,d) ( (((y)-1980)<<9) | ((m)<<5) | (d) )
58#define DOS_TIME(h,m,s) ( ((h)<<11) | ((m)<<5) | ((s)>>1) )
61#define SETUP_1980(st) \
68 (st).wMilliseconds = 0;
70#define SETUP_2002(st) \
77 (st).wMilliseconds = 0;
79#define SETUP_ATIME(st) \
86 (st).wMilliseconds = 123;
88#define SETUP_ZEROTIME(st) \
95 (st).wMilliseconds = 0;
97#define SETUP_EARLY(st) \
104 (st).wMilliseconds = 999;
119 "EARLY should be INVALID\n");
124 "Wrong time for ATIME: %08x %08x (correct %08x %08x)\n",
131 "Wrong time for ATIME: %08x %08x (correct %08x %08x)\n",
140 "Wrong time for 2002 %08x %08x (correct %08x %08x)\n", ft.
dwLowDateTime,
149 "Wrong time for 1980 %08x %08x (correct %08x %08x)\n", ft.
dwLowDateTime,
153 "DosDateTimeToFileTime() failed\n");
157 "Wrong time DosDateTimeToFileTime %08x %08x (correct %08x %08x)\n",
172 "DosDateTimeToFileTime() failed\n");
228 trace(
"unknown time zone id %d\n", tz_id);
237 char std_name[32], dlt_name[32];
263 trace(
"tz_id %u (%s)\n", tz_id,
267 "TIME_ZONE_ID_INVALID")));
271 trace(
"bias %d, %s - %s\n", tzinfo.
Bias, std_name, dlt_name);
272 trace(
"standard (d/m/y): %u/%02u/%04u day of week %u %u:%02u:%02u.%03u bias %d\n",
278 trace(
"daylight (d/m/y): %u/%02u/%04u day of week %u %u:%02u:%02u.%03u bias %d\n",
285 diff = (
LONG)(s_time - l_time);
287 "system/local diff %d != tz bias %d\n",
291 "SetEnvironmentVariableA failed\n");
298 "Bias influenced by TZ variable\n");
300 "SetEnvironmentVariableA failed\n");
302 if (!pSystemTimeToTzSpecificLocalTime)
304 win_skip(
"SystemTimeToTzSpecificLocalTime not available\n");
312 res = pSystemTimeToTzSpecificLocalTime(&tzinfo, &
utc, &
current);
315 win_skip(
"SystemTimeToTzSpecificLocalTime is not implemented\n");
325 res = pSystemTimeToTzSpecificLocalTime(&tzinfo, &
utc, &
local);
328 ok(l_time - s_time == diff -
get_tz_bias(&tzinfo, tz_id),
"got %d, expected %d\n",
339 res = pSystemTimeToTzSpecificLocalTime(&tzinfo, &
utc, &
local);
342 ok(l_time - s_time == diff,
"got %d, expected %d\n",
343 (
LONG)(l_time - s_time), diff);
346 memset(&tzinfo, 0,
sizeof(tzinfo));
362 res = pSystemTimeToTzSpecificLocalTime(&tzinfo, &
utc, &
local);
365 "got (%d-%d-%d %02d:%02d), expected (2012-12-31 23:01)\n",
380 "FileTimeToSystemTime() failed with Error %d\n",
GetLastError());
390 "FileTimeToSystemTime() failed with Error %d\n",
GetLastError());
394 "Got Year %4d Month %2d Day %2d Hour %2d Min %2d Sec %2d mSec %3d\n",
417 "FileTimeToLocalFileTime() failed with Error %d\n",
GetLastError());
422 "Got Year %4d Month %2d Day %2d Hour %2d Min %2d Sec %2d mSec %3d\n",
427 "SetEnvironmentVariableA failed\n");
431 "FileTimeToLocalFileTime() failed with Error %d\n",
GetLastError());
436 "Got Year %4d Month %2d Day %2d Hour %2d Min %2d Sec %2d mSec %3d\n",
440 "SetEnvironmentVariableA failed\n");
456 if (!pTzSpecificLocalTimeToSystemTime || !pSystemTimeToTzSpecificLocalTime)
458 win_skip(
"TzSpecificLocalTimeToSystemTime or SystemTimeToTzSpecificLocalTime not available\n");
502 { 1, &tzE, {2004,3,-1,28,1,0,0,0}, 15 },
503 { 2, &tzE, {2004,3,-1,28,1,59,59,999}, 15},
504 { 3, &tzE, {2004,3,-1,28,2,0,0,0}, 15},
506 { 4, &tzE, {2004,10,-1,31,2,0,0,0} , 15 },
507 { 5, &tzE, {2004,10,-1,31,2,59,59,999}, 15 },
508 { 6, &tzE, {2004,10,-1,31,3,0,0,0}, 17 },
510 { 7, &tzW, {2004,4,-1,4,1,0,0,0}, 5},
511 { 8, &tzW, {2004,4,-1,4,1,59,59,999}, 5},
512 { 9, &tzW, {2004,4,-1,4,2,0,0,0}, 5},
513 { 10, &tzW, {2004,10,-1,24,1,0,0,0}, 4},
514 { 11, &tzW, {2004,10,-1,24,1,59,59,999}, 4},
515 { 12, &tzW, {2004,10,-1,24,2,0,0,0 }, 6},
517 { 13, &tzS, {2004,4,-1,4,1,0,0,0}, 4},
518 { 14, &tzS, {2004,4,-1,4,1,59,59,999}, 4},
519 { 15, &tzS, {2004,4,-1,4,2,0,0,0}, 6},
520 { 16, &tzS, {2004,10,-1,24,1,0,0,0}, 5},
521 { 17, &tzS, {2004,10,-1,24,1,59,59,999}, 5},
522 { 18, &tzS, {2004,10,-1,24,2,0,0,0}, 5},
551 for(
j=0 , year = 1999; yeardays[
j][0] ;
j++, year++) {
552 for (
i=0; cases[
i].
nr;
i++) {
553 if(
i) cases[
i].
nr += 18;
556 pTzSpecificLocalTimeToSystemTime( cases[
i].ptz, &(cases[
i].slt), &
result);
558 "Test TzSpecificLocalTimeToSystemTime #%d. Got %4d-%02d-%02d %02d:%02d. Expect hour = %02d\n",
567 { 1, &tzE, {2004,3,-1,27,15,0,0,0}, 1 },
568 { 2, &tzE, {2004,3,-1,27,15,59,59,999}, 1},
569 { 3, &tzE, {2004,3,-1,27,16,0,0,0}, 3},
571 { 4, &tzE, {2004,10,-1,30,15,0,0,0}, 2 },
572 { 5, &tzE, {2004,10,-1,30,15,59,59,999}, 2 },
573 { 6, &tzE, {2004,10,-1,30,16,0,0,0}, 2 },
575 { 7, &tzW, {2004,4,-1,4,5,0,0,0}, 1},
576 { 8, &tzW, {2004,4,-1,4,5,59,59,999}, 1},
577 { 9, &tzW, {2004,4,-1,4,6,0,0,0}, 3},
578 { 10, &tzW, {2004,10,-1,24,4,0,0,0}, 1},
579 { 11, &tzW, {2004,10,-1,24,4,59,59,999}, 1},
580 { 12, &tzW, {2004,10,-1,24,5,0,0,0 }, 1},
582 { 13, &tzS, {2004,4,-1,4,4,0,0,0}, 1},
583 { 14, &tzS, {2004,4,-1,4,4,59,59,999}, 1},
584 { 15, &tzS, {2004,4,-1,4,5,0,0,0}, 1},
585 { 16, &tzS, {2004,10,-1,24,5,0,0,0}, 1},
586 { 17, &tzS, {2004,10,-1,24,5,59,59,999}, 1},
587 { 18, &tzS, {2004,10,-1,24,6,0,0,0}, 3},
617 for(
j=0 , year = 1999; yeardays[
j][0] ;
j++, year++) {
618 for (
i=0; cases[
i].
nr;
i++) {
619 if(
i) cases[
i].
nr += 18;
622 pSystemTimeToTzSpecificLocalTime( cases[
i].ptz, &(cases[
i].slt), &
result);
624 "Test SystemTimeToTzSpecificLocalTime #%d. Got %4d-%02d-%02d %02d:%02d. Expect hour = %02d\n",
636 WORD fatdate, fattime;
647 ok(!
ret,
"expected failure\n");
649 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
653 ok(!
ret,
"expected failure\n");
655 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
659 ok(!
ret,
"expected failure\n");
661 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
665 ok(!
ret,
"expected failure\n");
667 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
677 if (!pGetCalendarInfoA || !pGetCalendarInfoW)
679 trace(
"GetCalendarInfo missing\n" );
683 ret = pGetCalendarInfoA( 0x0409,
CAL_GREGORIAN, CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
686 ok(
ret ==
sizeof(val1),
"wrong size %u\n",
ret );
687 ok( val1 >= 2000 && val1 < 2100,
"wrong value %u\n", val1 );
689 ret = pGetCalendarInfoW( 0x0409,
CAL_GREGORIAN, CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
692 ok(
ret ==
sizeof(val2)/
sizeof(
WCHAR),
"wrong size %u\n",
ret );
693 ok( val1 == val2,
"A/W mismatch %u/%u\n", val1, val2 );
695 ret = pGetCalendarInfoA( 0x0409,
CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, bufferA,
sizeof(bufferA),
NULL );
697 ok(
ret == 5,
"wrong size %u\n",
ret );
698 ok(
atoi( bufferA ) == val1,
"wrong value %s/%u\n", bufferA, val1 );
700 ret = pGetCalendarInfoW( 0x0409,
CAL_GREGORIAN, CAL_ITWODIGITYEARMAX, bufferW,
sizeof(bufferW),
NULL );
702 ok(
ret == 5,
"wrong size %u\n",
ret );
703 memset( bufferA, 0x55,
sizeof(bufferA) );
705 ok(
atoi( bufferA ) == val1,
"wrong value %s/%u\n", bufferA, val1 );
707 ret = pGetCalendarInfoA( 0x0409,
CAL_GREGORIAN, CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
709 ok( !
ret,
"GetCalendarInfoA succeeded\n" );
714 ok(
ret == 5,
"wrong size %u\n",
ret );
716 ret = pGetCalendarInfoW( 0x0409,
CAL_GREGORIAN, CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
718 ok( !
ret,
"GetCalendarInfoW succeeded\n" );
723 ok(
ret == 5,
"wrong size %u\n",
ret );
726 bufferA,
sizeof(bufferA),
NULL);
731 ok(
ret == ret2,
"got %d, expected %d\n", ret2,
ret );
734 bufferW,
sizeof(bufferW),
NULL);
737 ok(
ret == ret2,
"got %d, expected %d\n",
ret, ret2 );
746 if (!pGetDynamicTimeZoneInformation)
748 win_skip(
"GetDynamicTimeZoneInformation() is not supported.\n");
752 ret = pGetDynamicTimeZoneInformation(&dyninfo);
754 ok(
ret == ret2,
"got %d, %d\n",
ret, ret2);
771 uli.
u.LowPart =
time->dwLowDateTime;
772 uli.
u.HighPart =
time->dwHighDateTime;
782 if (!pGetSystemTimePreciseAsFileTime)
784 win_skip(
"GetSystemTimePreciseAsFileTime() is not supported.\n");
790 pGetSystemTimePreciseAsFileTime(&ft);
792 diff = time2 - time1;
795 ok(diff < 1000000,
"Difference between GetSystemTimeAsFileTime and GetSystemTimePreciseAsFileTime more than 100 ms\n");
797 pGetSystemTimePreciseAsFileTime(&ft);
800 pGetSystemTimePreciseAsFileTime(&ft);
802 }
while (time2 == time1);
803 diff = time2 - time1;
804 ok(diff < 10000 && diff > 0,
"GetSystemTimePreciseAsFileTime incremented by more than 1 ms\n");
810 FILETIME idletime, kerneltime, usertime;
818 if (!pGetSystemTimes)
820 win_skip(
"GetSystemTimes not available\n");
824 ok( pGetSystemTimes(
NULL,
NULL,
NULL),
"GetSystemTimes failed unexpectedly\n" );
829 memset( &idletime, 0x11,
sizeof(idletime) );
830 memset( &kerneltime, 0x11,
sizeof(kerneltime) );
831 memset( &usertime, 0x11,
sizeof(usertime) );
832 ok( pGetSystemTimes(&idletime, &kerneltime , &usertime),
833 "GetSystemTimes failed unexpectedly\n" );
843 "NtQuerySystemInformation failed\n" );
857 "NtQuerySystemInformation failed\n" );
867 ok( total_kerneltime.
QuadPart - ul2.
QuadPart < 10000000,
"test kerneltime failed\n" );
882 first_of_month.
wYear = year;
884 first_of_month.
wDay = 1;
898 result_date = first_of_month;
918 static const WCHAR std_tzname[] = {
'G',
'r',
'e',
'e',
'n',
'l',
'a',
'n',
'd',
' ',
'S',
't',
'a',
'n',
'd',
'a',
'r',
'd',
' ',
'T',
'i',
'm',
'e',0};
919 static const WCHAR dlt_tzname[] = {
'G',
'r',
'e',
'e',
'n',
'l',
'a',
'n',
'd',
' ',
'D',
'a',
'y',
'l',
'i',
'g',
'h',
't',
' ',
'T',
'i',
'm',
'e',0};
920 WORD std_day, dlt_day;
922 if (!pGetTimeZoneInformationForYear || !pGetDynamicTimeZoneInformation)
924 win_skip(
"GetTimeZoneInformationForYear not available\n");
934 ok(tzinfo.
Bias == local_tzinfo.
Bias,
"Expected Bias %d, got %d\n", local_tzinfo.
Bias, tzinfo.
Bias);
944 pGetDynamicTimeZoneInformation(&dyn_tzinfo);
946 ret = pGetTimeZoneInformationForYear(
systemtime.wYear, &dyn_tzinfo, &tzinfo);
948 ok(tzinfo.
Bias == local_tzinfo.
Bias,
"Expected Bias %d, got %d\n", local_tzinfo.
Bias, tzinfo.
Bias);
958 memset(&dyn_tzinfo, 0xaa,
sizeof(dyn_tzinfo));
962 ret = pGetTimeZoneInformationForYear(2015, &dyn_tzinfo, &tzinfo);
964 ok(tzinfo.
Bias == 180,
"Expected Bias 180, got %d\n", tzinfo.
Bias);
967 ok(std_day == 24,
"Expected standard day 24, got %d\n", std_day);
971 ok(dlt_day == 28,
"Expected daylight day 28, got %d\n", dlt_day);
974 ret = pGetTimeZoneInformationForYear(2016, &dyn_tzinfo, &tzinfo2);
977 "Got differing StandardName values %s and %s\n",
980 "Got differing DaylightName values %s and %s\n",
983 memset(&dyn_tzinfo, 0xaa,
sizeof(dyn_tzinfo));
987 ret = pGetTimeZoneInformationForYear(2015, &dyn_tzinfo, &tzinfo);
990 "GetTimeZoneInformationForYear err %u\n",
GetLastError());
996 pTzSpecificLocalTimeToSystemTime = (
void *)
GetProcAddress(hKernel,
"TzSpecificLocalTimeToSystemTime");
997 pSystemTimeToTzSpecificLocalTime = (
void *)
GetProcAddress( hKernel,
"SystemTimeToTzSpecificLocalTime");
998 pGetSystemTimes = (
void *)
GetProcAddress( hKernel,
"GetSystemTimes");
999 pGetCalendarInfoA = (
void *)
GetProcAddress(hKernel,
"GetCalendarInfoA");
1000 pGetCalendarInfoW = (
void *)
GetProcAddress(hKernel,
"GetCalendarInfoW");
1001 pGetDynamicTimeZoneInformation = (
void *)
GetProcAddress(hKernel,
"GetDynamicTimeZoneInformation");
1002 pGetSystemTimePreciseAsFileTime = (
void *)
GetProcAddress(hKernel,
"GetSystemTimePreciseAsFileTime");
1003 pGetTimeZoneInformationForYear = (
void *)
GetProcAddress(hKernel,
"GetTimeZoneInformationForYear");
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
static DOUBLE utc(DOUBLE time, DateInstance *date)
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableA(IN LPCSTR lpName, IN LPCSTR lpValue)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
BOOL WINAPI DosDateTimeToFileTime(IN WORD wFatDate, IN WORD wFatTime, OUT LPFILETIME lpFileTime)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI FileTimeToDosDateTime(IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
VOID WINAPI GetSystemTime(OUT LPSYSTEMTIME lpSystemTime)
DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
@ SystemProcessorPerformanceInformation
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
struct task_struct * current
#define ERROR_FILE_NOT_FOUND
#define TICKS_1601_TO_1970
static void test_GetSystemTimePreciseAsFileTime(void)
#define DOS_TIME(h, m, s)
#define DOS_DATE(y, m, d)
static void test_invalid_arg(void)
static void test_conversions(void)
static void test_GetTimeZoneInformationForYear(void)
static void test_GetCalendarInfo(void)
static LPTIME_ZONE_INFORMATION
static void test_GetSystemTimes(void)
static LONG get_tz_bias(const TIME_ZONE_INFORMATION *tzinfo, DWORD tz_id)
#define SETUP_ZEROTIME(st)
static void test_TzSpecificLocalTimeToSystemTime(void)
static void test_GetTimeZoneInformation(void)
static void test_FileTimeToLocalFileTime(void)
static void test_GetDynamicTimeZoneInformation(void)
static ULONGLONG get_longlong_time(FILETIME *time)
static void test_FileTimeToDosDateTime(void)
static PDYNAMIC_TIME_ZONE_INFORMATION
static LONGLONG system_time_to_minutes(const SYSTEMTIME *st)
static void test_FileTimeToSystemTime(void)
static WORD day_of_month(const SYSTEMTIME *systemtime, WORD year)
static FILETIME systemtime
#define TIME_ZONE_ID_UNKNOWN
#define TIME_ZONE_ID_STANDARD
#define TIME_ZONE_ID_DAYLIGHT
#define LANG_SYSTEM_DEFAULT
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)
TIME_ZONE_INFORMATION * ptz
struct _ULARGE_INTEGER::@4142 u
DWORD WINAPI GetLastError(void)
#define TIME_ZONE_ID_INVALID