Dapatkan waktu sistem dalam milidetik di awal, dan lagi di akhir, dan kurangi.
Untuk mendapatkan jumlah milidetik sejak 1970 di POSIX Anda harus menulis:
struct timeval tv;
gettimeofday(&tv, NULL);
return ((((unsigned long long)tv.tv_sec) * 1000) +
(((unsigned long long)tv.tv_usec) / 1000));
Untuk mendapatkan jumlah milidetik sejak 1601 di Windows, Anda harus menulis:
SYSTEMTIME systime;
FILETIME filetime;
GetSystemTime(&systime);
if (!SystemTimeToFileTime(&systime, &filetime))
return 0;
unsigned long long ns_since_1601;
ULARGE_INTEGER* ptr = (ULARGE_INTEGER*)&ns_since_1601;
ptr->u.LowPart = filetime.dwLowDateTime;
ptr->u.HighPart = filetime.dwHighDateTime;
return (ns_since_1601 / 10000);
Jika Anda ingin menormalkan jawaban Windows agar juga mengembalikan jumlah milidetik sejak 1970, maka Anda harus menyesuaikan jawaban Anda dengan 11644473600000 milidetik. Tetapi itu tidak perlu jika yang Anda pedulikan hanyalah waktu yang telah berlalu.