c語言有沒有讀取系統時間的函式,C語言有沒有讀取系統時間的函式

時間 2021-12-19 11:23:19

1樓:

4.2 獲得日期和時間

這裡說的日期和時間就是我們平時所說的年、月、日、時、分、秒等資訊。從第2節我們已經知道這些資訊都儲存在乙個名為tm的結構體中,那麼如何將乙個日曆時間儲存為乙個tm結構的物件呢?

其中可以使用的函式是gmtime()和localtime(),這兩個函式的原型為:

struct tm * gmtime(const time_t *timer);

struct tm * localtime(const time_t * timer);

其中gmtime()函式是將日曆時間轉化為世界標準時間(即格林尼治時間),並返回乙個tm結構體來儲存這個時間,而localtime()函式是將日曆時間轉化為本地時間。比如現在用gmtime()函式獲得的世界標準時間是2023年7月30日7點18分20秒,那麼我用localtime()函式在中國地區獲得的本地時間會比世界標準時間晚8個小時,即2023年7月30日15點18分20秒。下面是個例子:

#include "time.h"

#include "stdio.h"

int main(void)

執行結果是:

local hour is: 15

utc hour is: 7

4.3 固定的時間格式

我們可以通過asctime()函式和ctime()函式將時間以固定的格式顯示出來,兩者的返回值都是char*型的字串。返回的時間格式為:

星期幾 月份 日期 時:分:秒 年\n\0

例如:wed jan 02 02:03:55 1980\n\0

其中\n是乙個換行符,\0是乙個空字元,表示字串結束。下面是兩個函式的原型:

char * asctime(const struct tm * timeptr);

char * ctime(const time_t *timer);

其中asctime()函式是通過tm結構來生成具有固定格式的儲存時間資訊的字串,而ctime()是通過日曆時間來生成時間字串。這樣的話,asctime()函式只是把tm結構物件中的各個域填到時間字串的相應位置就行了,而ctime()函式需要先參照本地的時間設定,把日曆時間轉化為本地時間,然後再生成格式化後的字串。在下面,如果t是乙個非空的time_t變數的話,那麼:

printf(ctime(&t));

等價於:

struct tm *ptr;

ptr=localtime(&t);

printf(asctime(ptr));

那麼,下面這個程式的兩條printf語句輸出的結果就是不同的了(除非你將本地時區設為世界標準時間所在的時區):

#include "time.h"

#include "stdio.h"

int main(void)

執行結果:

sat jul 30 08:43:03 2005

sat jul 30 16:43:03 2005

2樓:匿名使用者

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

#include

time_t  time( time_t * ) ;

time_t就是long,函式返回從2023年1月1日(mfc是2023年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()函式返回的值,轉換成時間結構struct tm :

struct tm ;

程式設計者可以根據程式功能的情況,靈活的進行日期的讀取與輸出了。

3樓:倒霉熊

#include

#include

void main ()

***************==

#include -- 必須的時間函式標頭檔案

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 ); -- 獲取時間,以秒計,從2023年1月一日起算,存於rawtime

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

asctime ()-- 轉為標準ascii時間格式:

星期 月 日 時:分:秒 年

****************************************=

你要的格式可這樣輸出:

printf ( "%4d-%02d-%02d %02d:%02d:%02d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon,

timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);

就是直接列印tm,tm_year 從2023年計算,所以要加1900,

月tm_mon,從0計算,所以要加1

其它你一目了然啦。

4樓:匿名使用者

byte bt = new byte[1];

using (filestream fs = new filestream("檔案絕對路徑", filemode.open, fileaccess.read))

讀入了bt

c語言中 如何獲取系統時間

5樓:匿名使用者

方法一,#include

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

方法二.#include

#include

int main ()

time_t 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;}

擴充套件資料

1、ctimespan類

如果想計算兩段時間的差值,可以使用ctimespan類,具體使用方法如下:

ctime t1( 1999, 3, 19, 22, 15, 0 );

ctime t = ctime::getcurrenttime();

ctimespan span=t-t1; //計算當前系統時間與時間t1的間隔

int iday=span.getdays(); //獲取這段時間間隔共有多少天

int ihour=span.gettotalhours(); //獲取總共有多少小時

int imin=span.gettotalminutes();//獲取總共有多少分鐘

int isec=span.gettotalseconds();//獲取總共有多少秒

2、timeb()函式

_timeb定義在sys\timeb.h,有四個fields

dstflag

millitm

time

timezone

void _ftime( struct _timeb *timeptr );

struct _timeb timebuffer;

_ftime( &timebuffer );

6樓:阿里

#include

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

擴充套件鏈結

注意事項:

struct tm中的tm_year 值為實際年減去1900, 所以輸出的時候要是lt->tm_year+1900。

c語言fread函式讀取檔案問題

你寫入文字檔案後,資料是用ascii碼串的形式來表示,已經不是二進位制資料了,因此需要用fscanf函式來讀取,試試如下程式 include include struct hj main fclose fp fread是一個函式。從一個檔案流中讀資料,最多讀取count個元素,每個元素size位元組...

c語言裡有沒有函式可以把浮點型轉化為字串

有,char gcvt double v,int n,char b 就是其一。其中b是存放轉換後的字串的空間首位址 指標 n是轉換後的字串的長度,v是要轉換的浮點數。應用舉例如下 include stdafx.h if the vc 6.0,with this line.include stdio....

C語言讀入資料的問題,C語言讀取資料問題,請大神幫我看看,讀取byte某幾位

能把所有的源 放上來嗎 關於c語言scanf語句無法讀取資料的問題 scanf lf p 是小寫的字母l,不是數字1 關於c語言中用scanf函式如何輸入資料的問題 如果scanf中 d是連著寫的如 d d d 在輸入資料時,資料之間不可以加逗號,只能是空格或tab鍵或專者回車鍵 2 3 4 2 按...