從系統時鐘獲取時間方式time_t time(time_t* timer)得到從標准計時點(一般是1970年1月1日午夜)到當前時間的秒數。clock_t clock(void)得到從程序啟動到此次函數調用時累計的毫秒數。
函數名稱: localtime
函數原型: struct tm *localtime(const time_t *timer)函數功能: 返回一個以tm結構表達的機器時間信息函數返回: 以tm結構表達的時間,結構tm定義如下:#ifndef _TM_DEFINED 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()為負。*/ }; #define _TM_DEFINED #endif參數說明: timer-使用time()函數獲得的機器時間所屬文件: <time.h>123456789101112
#include<time.h>
#include<stdio.h>
#include<dos.h>
int
main()
{
time_t
timer;
struct
tm
*tblock;
timer =
time
(NULL);
tblock =
localtime
(&timer);
printf
(
"Local time is: %s"
,
asctime
(tblock));
return
0;
}
函數名稱: asctime
函數原型: char* asctime(struct tm * ptr)函數功能: 得到機器時間(日期時間轉換為ASCII碼)函數返回: 返回的時間字符串格式為:星期,月,日,小時:分:秒,年參數說明: 結構指針ptr應通過函數localtime()和gmtime()得到
函數名稱: ctime
函數原型: char *ctime(const time_t *time)函數功能: 得到日歷時間函數返回: 返回字符串格式:星期,月,日,小時:分:秒,年參數說明: time-該參數應由函數time獲得所屬文件: <time.h>123456789
#include<stdio.h>
#include<time.h>
int
main()
{
time_t
t;
time
(&t);
printf
(
"Today's date and time: %s"
,
ctime
(&t));
return
0;
}
函數名稱: difftime
函數原型: double difftime(time_t time2,time_t time1)函數功能: 得到兩次機器時間差,單位為秒函數返回: 時間差,單位為秒參數說明: time1-機器時間一,time2-機器時間二.該參數應使用time函數獲得所屬文件: <time.h>12345678910111213
#include<time.h>
#include<stdio.h>
#include<windows.h>
int
main()
{
time_t
start,end;
system
(
"cls"
);
//清屏
time
(&start);
Sleep(5000);
//等待5秒,Sleep()函數包含在windows.h的頭文件裡,以毫秒為單位
time
(&end);
printf
(
"The difference is: %f seconds"
,
difftime
(end,start));
return
0;
}
函數名稱: gmtime
函數原型: struct tm *gmtime(time_t *time)函數功能: 得到以結構tm表示的時間信息函數返回: 以結構tm表示的時間信息指針參數說明: time-用函數time()得到的時間信息所屬文件: <time.h>123456789101112131415161718
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<dos.h>
char
*tzstr=
"TZ=PST8PDT"
;
int
main()
{
time_t
t;
struct
tm
*gmt,*area;
putenv(tzstr);
tzset();
t =
time
(NULL);
area =
localtime
(&t);
printf
(
"Local time is: %s"
,
asctime
(area));
gmt =
gmtime
(&t);
printf
(
"GMT is: %s"
,
asctime
(gmt));
return
0;
}
函數名稱: time
函數原型: time_t time(time_t *timer)函數功能: 得到系統當前的日歷時間函數返回: 系統當前日歷時間,如果不能獲得當前日歷時間,則返回-1參數說明: timer=NULL時得到機器日歷時間,timer為有效指針時,更新timer為系統當前時間,time_t是一個long類型所屬文件: <time.h>12345678910
#include<time.h>
#include<stdio.h>
#include<dos.h>
int
main()
{
time_t
t;
t =
time
(NULL);
//默認1970-1-1
printf
(
"The number of seconds since January1,1970 is %ld"
,t);
return
0;
}
函數名稱: tzset
函數原型: void tzset(void)函數功能: UNIX兼容函數,用於得到時區,在DOS環境下無用途函數返回:參數說明:所屬文件: <time.h>123456789101112
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
int
main()
{
time_t
td;
putenv(
"TZ=PST8PDT"
);
tzset();
time
(&td);
printf
(
"Current time = %s"
,
asctime
(
localtime
(&td)));
return
0;
}