1. 程式人生 > >c/c++ 時間日期函式

c/c++ 時間日期函式

時間日期分類:

  1. 協調世界時UTC,為世界標準時間,也就是大家所熟知的格林威治標準時間。中國內地的時間與UTC的時差為+8,也就是UTC+8。
  2. 日曆時間:是用“從一個標準時間點到此時的時間經過的秒數”來表示的時間。
  3. 時鐘計時單元。一個時鐘計時單元的時間長短是由CPU控制的,但它不是CPU的一個時鐘週期,而是C/C++的一個基本計時單位。在標準C/C++中,最小的計時單位是一毫秒。
  1. 程式執行時間:C/C++中的計時函式是clock(),而與其相關的資料型別是clock_t。clock()返回從“開啟這個程式程序”到“程式中呼叫 clock()函式”時之間的CPU時鐘計時單元(clock tick)數,在MSDN中稱之為掛鐘時間(wal-clock)。clock_t是用來儲存時間的資料型別,是一個長整形數。 毫秒單位。
    time.h

    檔案中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元.舉個例子,你可以使用公式 clock()/CLOCKS_PER_SEC來計算一個程序自身的執行時間。

  2. time_t time(time_t * timer); time.h 標頭檔案中。獲取日曆時間。如果你已經聲明瞭引數timer,你可以從引數timer返回現在的日曆時間,同時也可以通過返回值返回現在的日曆時間,即從一個時間點(例如:1970 年1月1日0時0分0秒)到現在此時的秒數。如果引數為空(NULL),函式將只通過返回值返回現在的日曆時間。 秒單位。
    1) struct tm * gmtime(const time_t *timer);

    日曆時間轉換為世界標準時間。
    2)struct tm * localtime(const time_t * timer);將日曆時間轉化為本地時間。北京時間比世界標準時間晚8小時。
    3)char * asctime(const struct tm * timeptr);通過tm結構來生成具有固定格式的儲存時間資訊的字串,只是把tm結構物件中的各個域填到時間字串的相應位置。 格式:星期幾 月份 日期時:分:秒 年\n\0
    4)char * ctime(const time_t *timer);把日曆時間轉化為本地時間,然後再生成格式化後的字串。 格式同上。
    5)size_t strftime(char *strDest,size_t maxsize,const char *format,const struct tm *timeptr);
    自定義日期格式輸出。
    6)double difftime(time_t time1, time_t time0); 計算時間間隔,秒單位。
    7)time_t mktime(struct tm * timeptr); 分解日期化為日曆時間。

  3. Windows API 獲取本地時間。 毫秒單位。 格式化結構體。 SYSTEMTIME sys;
    GetLocalTime( &sys );
  4. Windows API 計時。 微秒單位。 格式化結構體。
    LARGE_INTEGER m_nFreq;
LARGE_INTEGER m_nTime;
QueryPerformanceFrequency(&m_nFreq); // 獲取時鐘週期
QueryPerformanceCounter(&m_nTime);//獲取當前時間
printf(" time:%lld us",(m_lm.QuadPart*1000000/m_nFreq.QuadPart));
  1. Windows API 計時。 毫秒單位。DWORD GetTickCount(void); 返回(retrieve)從作業系統啟動所經過(elapsed)的毫秒數。
  2. Windows API 獲取時間。 毫秒單位。GetSystemTime()獲取的格林尼治時間, 是全球標準時間.。
      SYSTEMTIME stUTC;
      GetSystemTime(&stUTC);
      TCHAR chBuf[nBufSize];
      wsprintf(chBuf,_T("UTC: %u/%u/%u %u:%u:%u:%u %d\r\n"), stUTC.wYear, stUTC.wMonth, stUTC.wDay,
                  stUTC.wHour, stUTC.wMinute, stUTC.wSecond,
                  stUTC.wMilliseconds,stUTC.wDayOfWeek);
  1. Windows API 獲取本地時間。 GetLocalTime()在不同的機器中會有不同的結果,這和你在控制面板中的時區設定有關. 該函式是獲取的系統當前所屬時區的時間, 比如說, 在北京時區, 那麼獲取的該時間的時間.