Lấy thời gian của hệ thống tính bằng mili giây ở đầu và một lần nữa ở cuối và trừ đi.
Để có số mili giây kể từ năm 1970 trong POSIX, bạn sẽ viết:
struct timeval tv;
gettimeofday(&tv, NULL);
return ((((unsigned long long)tv.tv_sec) * 1000) +
(((unsigned long long)tv.tv_usec) / 1000));
Để có số mili giây kể từ năm 1601 trên Windows, bạn sẽ viết:
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;
// copy the result into the ULARGE_INTEGER; this is actually
// copying the result into the ns_since_1601 unsigned long long.
ptr->u.LowPart = filetime.dwLowDateTime;
ptr->u.HighPart = filetime.dwHighDateTime;
// Compute the number of milliseconds since 1601; we have to
// divide by 10,000, since the current value is the number of 100ns
// intervals since 1601, not ms.
return (ns_since_1601 / 10000);
Nếu bạn quan tâm đến việc chuẩn hóa câu trả lời của Windows để nó cũng trả về số mili giây kể từ năm 1970, thì bạn sẽ phải điều chỉnh câu trả lời của mình thêm 11644473600000 mili giây. Nhưng điều đó không cần thiết nếu tất cả những gì bạn quan tâm là thời gian đã trôi qua.