Ok, ho studiato un pò la <ctime> ed ho scritto questo piccolo codice che nin funziona come mi aspettavo:
codice:
#include <windows.h>
#include <ctime>
#include <cstdlib>
#include <iostream>
int main()
{
time_t start = time(NULL);
{
struct tm timeinfo;
memset(&timeinfo, 0, sizeof(timeinfo));
localtime_s(&timeinfo, &start);
char szTime[30] = {0};
strftime(szTime, 30, "%X", &timeinfo);
std::cout << "Start: " << szTime << std::endl;
}
Sleep(2000);
time_t end = time(NULL);
{
struct tm timeinfo;
memset(&timeinfo, 0, sizeof(timeinfo));
time_t dif = (time_t)difftime(end, start);
localtime_s(&timeinfo, &dif);
char szTime[30] = {0};
strftime(szTime, 30, "%X", &timeinfo);
std::cout << "End, time elapsed is: " << szTime << std::endl;
}
system("pause");
return EXIT_SUCCESS;
}
In pratica passano 2 secondi tra il primo blocco ed il secondo, ma il time elapsed indica 01:00:02 ovvero un'ora e due secondi...dov'è che sbaglio? inoltre sono stato costretto a fare il cast in: time_t dif = (time_t)difftime(end, start); perchè la funziona ritorna solo double...ho fatto bene?
grazie