您的位置:首页 > 编程语言 > C语言/C++

C语言时间函数解析

2010-03-27 11:38 351 查看
对于c的时间函数,又能知道多少呢?



时间函数解析



ftime() 获取当前时间,并将其保存在结构体timeb中
localtime() 将time_t转换成结构体tm


#include <stdio.h>
#include <time.h>
#include <sys/timeb.h>

int main()
{
struct timeb tp;
struct tm *tm;

ftime(&tp);
tm = localtime(&( tp.time ));

printf("%02d:%02d:%02d:%03d/n",
(tm->tm_hour),
(tm->tm_min),
(tm->tm_sec),
(tp.millitm ));

timeb
--------------------------------------------
struct timeb{
time_t time;
unsigned short millitm;
short timezonel;
short dstflag;
};

timeb.time
为1970-01-01至今的秒数
timeb.millitm
微秒
timeb.timezonel
为目前时区和Greenwich相差的时间,单位为分钟
timeb.dstflag
为日光节约时间的修正状态,如果为非0代表启用日光节约时间修正

ftime()
--------------------------------------------
int ftime(struct timeb *tp);
Return current date and time in tp
返回值 :无论成功或失败都返回0

tm
--------------------------------------------
Broken-down time is stored in the structure tm which is defined in <time.h> as follows:
struct tm {
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;
};
tm_sec
秒 –- 取值区间为[0,59]
tm_min
分 -- 取值区间为[0,59]
tm_hour
时 -- 取值区间为[0,23]
tm_mday
日 -- 取值区间为[1,31]
tm_mon
月 -- 取值区间为[0,11] (0代表一月)
tm_year
年 -- 其值为实际年份减去1900
tm_wday
星期 –- 取值区间为[0,6] (其中0代表星期天; 1代表星期一)
tm_yday
从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日
tm_isdst
夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。

localtime()
--------------------------------------------
asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r ---- transform date and time to broken-down time or ASCII

struct [b]tm
*localtime(const time_t *timep);[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: