Skip to content

Commit

Permalink
Update compare_time.c
Browse files Browse the repository at this point in the history
  • Loading branch information
janbodnar committed Apr 7, 2016
1 parent 90c9e5c commit fdcff29
Showing 1 changed file with 30 additions and 34 deletions.
64 changes: 30 additions & 34 deletions datetime/compare_time.c
Original file line number Diff line number Diff line change
Expand Up @@ -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(&lt);

wchar_t buf[128] = {0};

int r = GetDateFormatEx(LOCALE_NAME_USER_DEFAULT, DATE_LONGDATE,
&lt, 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;
}

0 comments on commit fdcff29

Please sign in to comment.