yuhao's map Let the Dream come true.

C語言 取得系統時間

2017-08-10
C

C語言 取得系統時間

C語言 取得時間的函數庫是 time.h 本文只會用到兩個資料型態

從1900年到現在的秒數

typedef long time_t;

時間結構

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-11 */
	int	tm_year;	/* 年: 1900到現在幾年 */
	int	tm_wday;	/* 星期 (0-6) */
	int	tm_yday;	/* 從1/1開始過幾天: 0-365 */
	int	tm_isdst;	/* +1 日光節約時間, 0 沒有節約時間, * -1 不知道 */
};

這個結構有幾個地方要需要注意

  1. mon 月份: 一月是 0 , 所以使用時必須要 + 1
  2. year 年: 這個年是從1900年開始算起, 使用時要 + 1900
  3. wday 星期: 從周日開始, 週日顯示 0
  4. tm_hour 時: 由於台灣的時區是 UTC+8 , 所以要加上8小時

測試程式

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

int main(int argc, char **args)
{
	time_t tim;
	struct tm *p;
	time(&tim);
	p = gmtime(&tim);
	printf("%d年 %d月 %d日\n%d點 %d分 %d秒\n星期%d 今年第%d天\n",
			p->tm_year + 1900, p->tm_mon + 1, p->tm_mday,
			p->tm_hour+8, p->tm_min, p->tm_sec,
			p->tm_wday, p->tm_yday);
	return EXIT_SUCCESS;
}
結果
2017年 8月 11日
17點 18分 31秒
星期5 今年第222天

Similar Posts

Comments