c 怎樣獲取系統時間

2021-09-06 16:30:17 字數 3501 閱讀 8977

c++怎樣獲取系統時間

2008-04-28 15:34

//方案— 長處:僅使用c標準庫;缺點:僅僅能精確到秒級

#include

#include

int main( void )

size_t strftime(char *strdest, size_t maxsize, const char *format, const struct tm *timeptr);

依據格式字串生成字串。

struct tm *localtime(const time_t *timer);

取得當地時間,localtime獲取的結果由結構tm返回

返回的字串能夠依下列的格式而定:

%a 星期幾的縮寫。eg:tue

%a 星期幾的全名。 eg: tuesday

%b 月份名稱的縮寫。

%b 月份名稱的全名。

%c 本地端日期時間較佳表示字串。

%d 用數字表示本月的第幾天 (範圍為 00 至 31)。日期

%h 用 24 小時制數字表示小時數 (範圍為 00 至 23)。

%i 用 12 小時制數字表示小時數 (範圍為 01 至 12)。

%j 以數字表示當年度的第幾天 (範圍為 001 至 366)。

%m 月份的數字 (範圍由 1 至 12)。

%m 分鐘。

%p 以 ''am'' 或 ''pm'' 表示本地端時間。

%s 秒數。

%u 數字表示為本年度的第幾周,第乙個星期由第乙個週日開始。

%w 數字表示為本年度的第幾周,第乙個星期由第乙個周一開始。

%w 用數字表示本週的第幾天 ( 0 為週日)。

%x 不含時間的日期表示法。

%x 不含日期的時間表示法。 eg: 15:26:30

%y 二位數字表示年份 (範圍由 00 至 99)。

%y 完整的年份數字表示,即四位數。 eg:2008

%z(%z) 時區或名稱縮寫。eg:中國標準時間

%% % 字元。

//方案二 長處:能精確到毫秒級;缺點:使用了windows api

#include

#include

int main( void )

//方案三,長處:利用系統函式,還能改動系統時間

//此檔案必須是c++檔案

#include

#include

using namespace std;

void main()

//方案四,將當前時間折算為秒級,再通過對應的時間換算就可以

//此檔案必須是c++檔案

#include

#include<ctime>

using namespace std;

int main()

2,時間的儲存,通過提前定義的兩種結構來儲存:

1,日曆時間(calendar time)是通過time_t資料型別來表示的,用time_t表示的時間(日曆時間)是從乙個時間點(比如:2023年1月1日0時0分0秒)到此時的秒數。在time.h中,我們也能夠看到time_t是乙個長整型數:

#ifndef _time_t_defined

typedef long time_t;

/* 時間值 */

#define _time_t_defined

/* 避免反覆定義 time_t */

#endif

2,在標準c/c++中,我們可通過tm結構來獲得日期和時間,tm結構在time.h中的定義例如以下:

struct tm ;

3,時間的顯示:

time.h 標頭檔案裡提供了asctime()函式(引數為tm結構指標)和ctime()函式(引數為time_t結構)將時間以固定的格式顯示出來,兩者的返回值都是char*型的字串。返回的時間格式為:星期幾 月份 日期 時:分:秒 年/n/0;time.h還提供了兩種不同的函式將日曆時間(乙個用time_t表示的整數)轉換為我們平時看到的把年月日時分秒分開顯示的時間格式 tm:

struct tm * gmtime(const time_t *timer);

gmtime()函式是將日曆時間轉化為世界標準時間(即格林尼治時間),並返回乙個tm結構體來儲存這個時間

struct tm * localtime(const time_t * timer);localtime()函式是將日曆時間轉化為本地時間

#include

#include

#include

#include

int main(void)

4,時間差的計算:

所用函式:c/c++中的計時函式是clock(),而與其相關的資料型別是clock_t。在msdn中對clock函式定義例如以下:

clock_t clock( void );函式返回從「開啟這個程式程序」到「程式中呼叫clock()函式」時之間的cpu時鐘計時單元(clock tick)數,clock_t是乙個長整形數,儲存時間的資料型別。在time.h檔案裡,還定義了乙個常量clocks_per_sec,它用來表示一 秒鐘會有多少個時鐘計時單元,其定義例如以下:

#define clocks_per_sec ((clock_t)1000)

每 過千分之中的乙個秒(1毫秒),呼叫clock()函式返回的值就加1,時鐘計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不能夠通過改變 clocks_per_sec的定義,通過把它定義的大一些,從而使計時精度更高呢?這樣是不行的。在標準c/c++中,最小的計時單位是一毫秒。 double difftime(time_t time1, time_t time0);這個函式來計算時間差。

#include "stdafx.h"

#include "time.h"

#include "stdio.h"

#include "stdlib.h"

int main(void)

5,時間的其它用途

用作隨機數的種子,因為時間獲得的實際上是乙個double型別的長整數,通過time(null)函式獲得,作為srand(time(null))的種子產生隨機數比較好。

#include "stdafx.h"

#include "time.h"

#include "stdio.h"

#include "stdlib.h"

int main(void)

system("pause");

return 0;

C 系統時間獲取

在c 中想要獲取當前系統的時候可以使用函式 time t time time t timer 使用這個函式如果傳入的 引數不是null 那麼,它就會把當前系統的時間設定到這個指標當中 這個函式返回的 數字是 從 00 00 hours,jan 1,1970 utc 的 秒 struct tm loc...

c 獲取系統時間

方案 優點 僅使用c標準庫 缺點 只能精確到秒級 include include int main void size t strftime char strdest,size t maxsize,const char format,const struct tm timeptr 根據格式字串生成字...

C 獲取系統時間

include include using namespace std int main 說明 struct tm 在vc 中,我們可以借助ctime時間類,獲取系統當前日期 ctime t ctime getcurrenttime 獲取系統日期 int d t.getday 獲得幾號 int y ...