c語言實現時間,c語言計算時間差

本文目錄一覽:

用c語言獲取時間

#include stdio.h

#include time.h 

int main()

time_t rawtime; 

struct tm * timeinfo; 

time ( rawtime ); 

timeinfo = localtime ( rawtime ); 

printf ( “當前系統時間: %s”, asctime (timeinfo) ); 

return 0;

}

說明:

time_t // 時間類型(time.h 定義) 

struct tm { // 時間結構,time.h 定義如下: 

int tm_sec; 

int tm_min; 

int tm_hour; 

int tm_mday; 

int tm_mon; 

int tm_year; 

int tm_wday; 

int tm_yday; 

int tm_isdst; 

time ( rawtime ); // 獲取時間,以秒計,從1970年1月一日起算,存於rawtime 

localtime ( rawtime ); //轉為當地時間,tm 時間結構 

asctime() // 轉為標準ASCII時間格式: 

//就是直接打印tm,tm_year 從1900年計算,所以要加1900,月tm_mon,從0計算,所以要加1

c語言編程,怎麼計算時間

#include stdio.h

#include stdlib.h

#include time.h

void main()

{

unsigned char time1[] = { 10, 8, 31, 9, 26 };

unsigned char time2[] = { 10, 8, 31, 9, 50 };

struct tm t1 = {0};

struct tm t2 = {0};

time_t _t1;

time_t _t2;

double diff;

t1.tm_year = time1[0] + 100;

t1.tm_mon = time1[1];

t1.tm_mday = time1[2];

t1.tm_hour = time1[3];

t1.tm_min = time1[4];

t2.tm_year = time2[0] + 100;

t2.tm_mon = time2[1];

t2.tm_mday = time2[2];

t2.tm_hour = time2[3];

t2.tm_min = time2[4];

_t1 = _mkgmtime( t1 );

_t2 = _mkgmtime( t2 );

diff = difftime(_t2, _t1 );

printf( “相差 %.0f 分鐘\n”, diff / 60 );

}

擴展資料:

C語言中有兩個相關的函數用來計算時間差,分別是:

time_t time( time_t *t)   與 clock_t clock(void)

頭文件: time.h

計算的時間單位分別為: s   , ms

time_t 和 clock_t 是函數庫time.h 中定義的用來保存時間的數據結構

返回值:

1、time  : 返回從公元1970年1月1號的UTC時間從0時0分0秒算起到現在所經過的秒數。如果參數 t 非空指針的話,返回的時間會保存在 t 所指向的內存。

2、clock:返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鐘計時單元(clock tick)數。     1單元 = 1 ms。

所以我們可以根據具體情況需求,判斷採用哪一個函數。

具體用法如下例子:

#include time.h

#include stdio.h

#include stdlib.h

int main()

{

time_t c_start, t_start, c_end, t_end;

c_start = clock();    //! 單位為ms

t_start = time(NULL);  //! 單位為s

system(“pause”);

c_end   = clock();

t_end = time(NULL);

//!difftime(time_t, time_t)返回兩個time_t變量間的時間間隔,即時間差

printf(“The pause used %f ms by clock()\n”,difftime(c_end,c_start));

printf(“The pause used %f s by time()\n”,difftime(t_end,t_start));

system(“pause”);

return 0;

}

因此,要計算某一函數塊的佔用時間時,只需要在執行該函數塊之前和執行完該函數塊之後調用同一個時間計算函數。再調用函數difftime()計算兩者的差,即可得到耗費時間。

C語言計算時間

在C語言中計算時間,可以使用標準庫中的計時函數——clock()。

函數原型:

clock_t clock( void );

其中clock_t是用來保存時間的數據類型,在time.h文件中,可以找到對它的定義:

#ifndef _CLOCK_T_DEFINED

typedef long clock_t;

#define _CLOCK_T_DEFINED

#endif

很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:

#define CLOCKS_PER_SEC ((clock_t)1000)

可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:

void elapsed_time()

{

printf(“Elapsed time:%u secs.\n”,clock()/CLOCKS_PER_SEC);

}

當然,也可以用clock函數來計算的機器運行一個循環或者處理其它事件到底花了多少時間:

#include stdio.h

#include stdlib.h

#include time.h

int main( void )

{

long    i = 10000000L;

clock_t start, finish;

double  duration;

printf( “Time to do %ld empty loops is “, i );

start = clock();

while( i– )      ;

finish = clock();

duration = (double)(finish – start) / CLOCKS_PER_SEC;

printf( “%f seconds\n”, duration );

system(“pause”);

}

C語言中有沒有能顯示系統日期和時間的函數?

C語言中讀取系統時間的函數為time(),其函數原型為:

#include time.h

time_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 2015

C語言還提供了將秒數轉換成相應的時間結構的函數:

struct tm * gmtime(const time_t *timer); //將日曆時間轉化為世界標準時間(即格林尼治時間)

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

將通過time()函數返回的值,轉換成時間結構struct tm :

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

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*/

}

原創文章,作者:FAZB,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/148740.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FAZB的頭像FAZB
上一篇 2024-11-03 15:18
下一篇 2024-11-03 15:18

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • 解決docker-compose 容器時間和服務器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與服務器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • 想把你和時間藏起來

    如果你覺得時間過得太快,每天都過得太匆忙,那麼你是否曾經想過想把時間藏起來,慢慢享受每一個瞬間?在這篇文章中,我們將會從多個方面,詳細地闡述如何想把你和時間藏起來。 一、一些時間管…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28

發表回復

登錄後才能評論