1. 程式人生 > >C語言日期和時間獲取(小白筆記)

C語言日期和時間獲取(小白筆記)

包含在標頭檔案<time.h>time函式用於獲取當前時間和日期。

其函式原型為time_t time(time_t *timer)。time_t為新定義資料型別,其定義在<time.h>中。使用不同編譯器該定義會略有不同,大致定義為:

typedef unsigned long time_t;

即把unsigned long賦予一個新名字——time_t

若時間日期無效,該函式返回-1,若timer不為NULL,則在timer指向的物件中也儲存時間日期。

例:time(&current);

current應被定義為time_t型,呼叫time函式後,current就儲存了當前時間,值得注意的是,在許多編譯器中,儲存的是從基準時間(例如1970年1月1日上午0時0分0秒)經過的秒數。因此,我們還需要呼叫另一個函式來轉化為我們日常生活中使用的時間形式。

localtime函式其也在<time.h>函式中,原型為struct tm *localtime(const time_t *timer),其返還的時轉換後時間的指標!

其中,struct tm的原型為:

struct tm{

int tm_sec; /*秒,範圍[0,61],正常範圍為[0,59],但允許61s*/

int tm_min; /*分,範圍[0,59]*/

int tm_hour; /*時,範圍[0,23]*/

int tm_mady;/*日,範圍[1,31]*/

int tm_mon; /*距離一月份的月數,範圍[0,11]*/

int tm_year;/*距離1900年的年數*

/

int tm_wday;/*距離星期日的天數,範圍[0,6]*/

int tm_yday;/*距離1月1日的天數,範圍[0,365]*/

int tm_isdst; /*夏令時旗標*/

}

稱之為時間結構體型別。

於是,要顯示當前日期,我們可以這樣做:

#include<time.h>					//包含time和localtime的函式肯定不能掉的啦!
#include<stdio.h>
#include<windows.h>					//包含清屏和暫停指令 
void put_date()						//自己定義的一個日期時間顯示函式 
{
	time_t current;					//用於儲存時間(秒數)的變數需定義為time_t型別 
	struct tm *local;				//用於儲存轉換時間後localtime函式返還的指標
	char wday_name[][7]={"日","一","二","三","四","五","六"};	//用於代替tm_wday顯示具體星期
	
	time(¤t);					//呼叫time函式,將秒數儲存在current中
	local=localtime(¤t); 		//將秒數轉化為日常使用日期形式,並將這個指標儲存在local中
	
	printf("現在的時間是:%d年%02d月%02d日%02d時%02d分%02d秒(星期%s)",local->tm_year+1900
									,local->tm_mon+1
									,local->tm_mday
									,local->tm_hour
									,local->tm_min
									,local->tm_sec
									,wday_name[local->tm_wday]
		);
}
int main()
{
	while(1)
	{
		system("cls"); 
		put_date();
		Sleep(1000);				//暫停一秒重新整理一次 
	}
	
	return 0;
} 
以上就是本人在學習C語言過程中所得的一部分

參考書籍為《明解C語言》