शुरुआत में, और फिर अंत में मिलीसेकंड में सिस्टम समय प्राप्त करें, और घटाएं।
POSIX में 1970 से मिलीसेकंड की संख्या प्राप्त करने के लिए आप लिखेंगे:
struct timeval tv;
gettimeofday(&tv, NULL);
return ((((unsigned long long)tv.tv_sec) * 1000) +
(((unsigned long long)tv.tv_usec) / 1000));
विंडोज पर 1601 से मिलीसेकंड की संख्या प्राप्त करने के लिए आप लिखेंगे:
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);
यदि आपने विंडोज उत्तर को सामान्य करने की परवाह की है ताकि यह 1970 के बाद से मिलीसेकंड की संख्या भी लौटाए, तो आपको अपना जवाब 11644473600000 मिलिसेकंड से समायोजित करना होगा। लेकिन यह आवश्यक नहीं है अगर आप सभी के बारे में परवाह करते हैं तो बीता हुआ समय है।