diff --git a/datetime/compare_time.c b/datetime/compare_time.c index b21379b..212f2f1 100644 --- a/datetime/compare_time.c +++ b/datetime/compare_time.c @@ -3,49 +3,45 @@ int wmain(void) { - SYSTEMTIME st1 = {0}; - SYSTEMTIME st2 = {0}; - FILETIME ft1 = {0}; - FILETIME ft2 = {0}; - - st1.wYear = 2015; - st1.wMonth = 4; - st1.wDay = 12; - - st2.wYear = 2015; - st2.wMonth = 5; - st2.wDay = 12; - - int r1 = SystemTimeToFileTime(&st1, &ft1); - - if (r1 == 0) { - - wprintf(L"Failed to convert system time to file time\n (%d)", + PDWORD cChars = NULL; + HANDLE std = GetStdHandle(STD_OUTPUT_HANDLE); + + if (std == INVALID_HANDLE_VALUE) { + wprintf(L"Cannot retrieve standard output handle %d\n", GetLastError()); return 1; } - - int r2 = SystemTimeToFileTime(&st2, &ft2); - - if (r2 == 0) { - - wprintf(L"Failed to convert system time to file time\n (%d)", + + SYSTEMTIME lt = {0}; + GetLocalTime(<); + + wchar_t buf[128] = {0}; + + int r = GetDateFormatEx(LOCALE_NAME_USER_DEFAULT, DATE_LONGDATE, + <, NULL, buf, sizeof(buf)/sizeof(buf[0]), NULL); + + if (r == 0) { + + wprintf(L"GetDateFormatEx function failed %d\n", GetLastError()); + + CloseHandle(std); + return 1; } - - short ct = CompareFileTime(&ft1, &ft2); - - if (ct == -1) { - - wprintf(L"4/12/2015 comes before 5/12/2015\n"); - } else if (ct == 0) { - wprintf(L"4/12/2015 is equal to 5/12/2015\n"); - } else if (ct == 1) { + WriteConsoleW(std, buf, wcslen(buf), cChars, NULL); + + r = CloseHandle(std); - wprintf(L"4/12/2015 comes after 5/12/2015\n"); + if (r == 0) { + + wprintf(L"Cannot close console handle %d\n", + GetLastError()); + return 1; } + + CloseHandle(std); return 0; }