Windows獲取時間

在Windows下獲取時間常用的API有:GetLocalTime(), GetSystemTime(), GetTickCount(),以下說明三者的用法及差別。

(1) GetLocalTime

該函數用於獲取本地時間,精確到毫秒級。函數聲明如下:

void WINAPI GetLocalTime(
  _Out_ LPSYSTEMTIME lpSystemTime
);
函數將獲取到的時間保存在SYSTEMTIME結構體中,該結構體聲明如下:

typedef struct _SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
(2) GetSystemTime()

函數聲明及參數結構類似於GetLocalTime():

void WINAPI GetSystemTime(
  _Out_ LPSYSTEMTIME lpSystemTime
);
但不同於GetLocalTime(),該函數獲取世界協調時間(UTC).

#include <stdio.h>
#include <windows.h>

int main()
{
    SYSTEMTIME st, lt;

    GetSystemTime(&st);
    GetLocalTime(&lt);

    printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute);
    printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);

    return 0;
}
在實際編程中,使用GetLocalTime()頻率更高。

(3) GetTickCount
該函數獲取自系統啓動後所經過的毫秒數。

DWORD WINAPI GetTickCount(void);
可以用該函數計算程序運行所花費的時間。

#include <stdioi.h>
#include <time.h>
#include <windows.h>

int main()
{
	DWORD startTime, endTime;
	startTime = GetTickCount();
	Sleep(1);
	endTime = GetTickCount();

	printf("Program takes: %02d\n", endTime - startTime);

    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章