Powered By Blogger

<< Patricians VS Arriviste >> Not the very obvious in Computer science.

Saturday, May 13, 2006

Where's the bug ?

int HypAcceptAndPrint2Dates() {
__time64_t merge_lower_time;
__time64_t merge_upper_time;

printf("\nMerge files greater than:");
status = getTimeFromUser(&merge_lower_time);
if (status != ERROR_SUCCESS) {
printf("\nInvalid Date");
return -1;
}

printf("\nMerge files less than:");
status = getTimeFromUser(&merge_upper_time);
if (status != ERROR_SUCCESS) {
printf("\nInvalid Date");
return -1;
}

printf("\n Attempting merge between time Range \n %S %S", _localtime64(&merge_lower_time)?_wasctime(_localtime64(&merge_lower_time)):L"Time Config Error.", _localtime64(&merge_upper_time)?_wasctime(_localtime64(&merge_upper_time)):L"Time Config Error.");
return 0;
}

Merge files greater than:
Specify an Time Stamp:
Enter year [1900-3000]:2000
Enter month [0,11]:0
Enter day [1,31]:1
Enter hour [0,23]:0
Enter minute [0,59]:0
Enter seconds [0,59]:0

Merge files less than:
Specify an Time Stamp:
Enter year [1900-3000]:2005
Enter month [0,11]:0
Enter day [1,31]:1
Enter hour [0,23]:0
Enter minute [0,59]:0
Enter seconds [0,59]:0

Attempting merge on c: between time Range
Sat Jan 01 00:00:00 2000
Sat Jan 01 00:00:00 2000


//



int HypAcceptAndPrint2Dates() {
__time64_t merge_lower_time;
__time64_t merge_upper_time;

printf("\nMerge files greater than:");
status = getTimeFromUser(&merge_lower_time);
if (status != ERROR_SUCCESS) {
wprintf(L"\nInvalid Date");
return -1;
}

printf("\nMerge files less than:");
status = getTimeFromUser(&merge_upper_time);
if (status != ERROR_SUCCESS) {
wprintf(L"\nInvalid Date");
return -1;
}

printf("\n Attempting merge between time Range \n %S ", _localtime64(&merge_lower_time)?_wasctime(_localtime64(&merge_lower_time)):L"Time Config Error.");
printf("%S",_localtime64(&merge_upper_time)?_wasctime(_localtime64(&merge_upper_time)):L"Time ConfigError.");

}





Merge files greater than:
Specify an Time Stamp:
Enter year [1900-3000]:2000
Enter month [0,11]:0
Enter day [1,31]:1
Enter hour [0,23]:0
Enter minute [0,59]:0
Enter seconds [0,59]:0

Merge files less than:
Specify an Time Stamp:
Enter year [1900-3000]:2005
Enter month [0,11]:0
Enter day [1,31]:1
Enter hour [0,23]:0
Enter minute [0,59]:0
Enter seconds [0,59]:0

Attempting merge on c: between time Range
Sat Jan 01 00:00:00 2000
Sat Jan 01 00:00:00 2005


Conclusion:
Exceprt From MSDN which did not read, WHY because i thougt printing time is a trivial thing.

asctime uses a single, statically allocated buffer to hold the return string. Each call to this function destroys the result of the previous call.

Followers