本文目錄一覽:
- 1、用c語言如何獲取系統當前時間的函數?
- 2、c語言如獲取系統時間精確到微秒,給出函數,並舉例
- 3、如何用C語言獲取當前系統時間?
- 4、看過來,看過來 C語言獲取系統時間的幾種方式
- 5、如何用C語言得到精確到微秒
用c語言如何獲取系統當前時間的函數?
1、C語言中讀取系統時間的函數為time(),其函數原型為:\x0d\x0a#include \x0d\x0atime_t time( time_t * ) ;\x0d\x0atime_t就是long,函數返回從1970年1月1日(MFC是1899年12月31日)0時0分0秒,到現在的的秒數。\x0d\x0a2、C語言還提供了將秒數轉換成相應的時間格式的函數:\x0d\x0a char * ctime(const time_t *timer); //將日曆時間轉換成本地時間,返迴轉換後的字元串指針 可定義字元串或是字元指針來接收返回值\x0d\x0a struct tm * gmtime(const time_t *timer); //將日曆時間轉化為世界標準時間(即格林尼治時間),返回結構體指針 可定義struct tm *變數來接收結果\x0d\x0a struct tm * localtime(const time_t * timer); //將日曆時間轉化為本地時間,返回結構體指針 可定義struct tm *變數來接收結果\x0d\x0a3、常式:\x0d\x0a#include \x0d\x0avoid main()\x0d\x0a{\x0d\x0a time_t t;\x0d\x0a struct tm *pt ;\x0d\x0a char *pc ;\x0d\x0a time(t);\x0d\x0a pc=ctime(t) ; printf(“ctime:%s”, pc );\x0d\x0a pt=localtime(t) ; printf(“year=%d”, pt-tm_year+1900 );\x0d\x0a}\x0d\x0a\x0d\x0a時間結構體struct tm 說明:\x0d\x0a\x0d\x0astruct tm { \x0d\x0a int tm_sec; /* 秒 _ 取值區間為[0,59] */ \x0d\x0a int tm_min; /* 分 – 取值區間為[0,59] */ \x0d\x0a int tm_hour; /* 時 – 取值區間為[0,23] */ \x0d\x0a int tm_mday; /* 一個月中的日期 – 取值區間為[1,31] */ \x0d\x0a int tm_mon; /* 月份(從一月開始,0代表一月) – 取值區間為[0,11] */ \x0d\x0a int tm_year; /* 年份,其值等於實際年份減去1900 */ \x0d\x0a int tm_wday; /* 星期 _ 取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推 */ \x0d\x0a int tm_yday; /* 從每年的1月1日開始的天數 _ 取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */ \x0d\x0a int tm_isdst; /* 夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/ \x0d\x0a};
c語言如獲取系統時間精確到微秒,給出函數,並舉例
#include mmsystem.h
LONGLONG SchGetCurTicksCunt(VOID)
{
LARGE_INTEGERlitmp;
QueryPerformanceCounter(litmp);
return litmp.QuadPart;
}
例如多媒體時鐘
如何用C語言獲取當前系統時間?
需要利用C語言的時間函數time和localtime,具體說明如下:
一、函數介面介紹:
1、time函數。
形式為time_t time (time_t *__timer);
其中time_t為time.h定義的結構體,一般為長整型。
這個函數會獲取當前時間,並返回。 如果參數__timer非空,會存儲相同值到__timer指向的內存中。
time函數返回的為unix時間戳,即從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
由於是秒作為單位的,所以這並不是習慣上的時間,要轉為習慣上的年月日時間形式就需要另外一個函數了。
2、localtime函數。
形式為struct tm *localtime (const time_t *__timer);
其中tm為一個結構體,包含了年月日時分秒等信息。
這種結構是適合用來輸出的。
二、參考代碼:
#include stdio.h
#include time.h
int main ()
{
time_t t;
struct tm * lt;
time (t);//獲取Unix時間戳。
lt = localtime (t);//轉為時間結構。
printf ( “%d/%d/%d %d:%d:%d\n”,lt-tm_year+1900, lt-tm_mon, lt-tm_mday, lt-tm_hour, lt-tm_min, lt-tm_sec);//輸出結果
return 0;
}
注意事項:
struct tm中的tm_year 值為實際年減去1900, 所以輸出的時候要是lt-tm_year+1900。
看過來,看過來 C語言獲取系統時間的幾種方式
我們在寫C語言程序的時候,有的時候會用到讀取本機的時間和日期,怎麼做呢?其實很簡單的,下面簡單說一下:
C語言中讀取系統時間的函數為time(),其函數原型為:#include time.htime_t time( time_t * ) ;
time_t就是long,函數返回從1970年1月1日(MFC是1899年12月31日)0時0分0秒,到現在的的秒數。
可以調用ctime()函數進行時間轉換輸出:char * ctime(const time_t *timer);
將日曆時間轉換成本地時間,按年月日格式,進行輸出,如:Wed Sep 23 08:43:03 2015C語言還提供了將秒數轉換成相應的時間結構的函數:
struct tm * gmtime(const time_t *timer); //將日曆時間轉化為世界標準時間(即格林尼治時間)
struct tm * localtime(const time_t * timer); //將日曆時間轉為本地時間將通過time()函數返回的值,轉成時間結構structtm :
struct tm {int tm_sec; /* 秒 – 取值區間為[0,59] */
int tm_min; /* 分 – 取值區間為[0,59] */
int tm_hour; /* 時 – 取值區間為[0,23] */
int tm_mday; /* 一個月中的日期 – 取值區間為[1,31] */
int tm_mon; /* 月份(從一月開始,0代表一月) – 取值區間為[0,11] */
int tm_year; /* 年份,其值等於實際年份減去1900 */
int tm_wday; /* 星期 – 取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推 */
int tm_yday; /* 從每年的1月1日開始的天數 – 取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */
int tm_isdst; /* 夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/};
編程者可以根據程序功能的情況,靈活的進行日期的讀取與輸出了。
下面給出一段簡單的代碼:
#includetime.h
int main()
{
time_t timep;
struct tm *p;
time (timep);
p=gmtime(timep);
printf(“%d\n”,p-tm_sec); /*獲取當前秒*/
printf(“%d\n”,p-tm_min); /*獲取當前分*/
printf(“%d\n”,8+p-tm_hour);/*獲取當前時,這裡獲取西方的時間,剛好相差八個小時*/
printf(“%d\n”,p-tm_mday);/*獲取當前月份日數,範圍是1-31*/
printf(“%d\n”,1+p-tm_mon);/*獲取當前月份,範圍是0-11,所以要加1*/
printf(“%d\n”,1900+p-tm_year);/*獲取當前年份,從1900開始,所以要加1900*/
printf(“%d\n”,p-tm_yday); /*從今年1月1日算起至今的天數,範圍為0-365*/
}
如何用C語言得到精確到微秒
timeval這個struct當中可以精確到微秒。
LINUX中示例:
#include stdio.h // for printf()
#include sys/time.h // for gettimeofday()
#include unistd.h // for sleep()
int main()
{
struct timeval start, end;
gettimeofday( start, NULL );
printf(“start : %d.%d\n”, start.tv_sec, start.tv_usec);
sleep(1);
gettimeofday( end, NULL );
printf(“end : %d.%d\n”, end.tv_sec, end.tv_usec);
return 0;
}
運行結果:
start : 1418118324.633128
end : 1418118325.634616
原創文章,作者:NLIR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144159.html