Başlangıçta ve sonunda milisaniye cinsinden sistem saatini alın ve çıkarın.
POSIX'te 1970'ten bu yana geçen milisaniye sayısını elde etmek için şunu yazarsınız:
struct timeval tv;
gettimeofday(&tv, NULL);
return ((((unsigned long long)tv.tv_sec) * 1000) +
(((unsigned long long)tv.tv_usec) / 1000));
Windows'ta 1601'den beri geçen milisaniye sayısını almak için şunu yazarsınız:
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);
Windows yanıtını, 1970'ten bu yana geçen milisaniye sayısını da döndürecek şekilde normalleştirmeye özen gösterdiyseniz, yanıtınızı 11644473600000 milisaniye olarak ayarlamanız gerekir. Ancak tüm ilgilendiğiniz geçen zaman ise bu gerekli değildir.