00010-linux时间编程.doc
一、 时间的类型
1.格林威治标准时间
coordinated universal time(UTC)是世界标准时间,即常说的格林威治标准时间(greenwich mean time,GMT).
2.日历时间
日历时间(calendar time)是用"一个标准时间点(如1970年1月1日0点)到此时经过的秒数"来表示的时间.
二、 时间函数系统调用
1. 获取日历时间:
#include
time_t time(time_t *tloc)
函数功能:获取日历时间,即从1970年1月1日0点到现在所经历的秒数.
参数:通常设置为NULL
2. 将日历时间转换为格林威治时间:
struct tm
{
int tm_sec; //秒值
int tm_min; //分钟值
int tm_hour; //小时值
int tm_mday; //本月第几日
int tm_mon; //本年第几月
int tm_year; //tm_year+1900=哪一年
int tm_wday; //本周第几日
int tm_yday; //本年第几日
int tm_isdst; //日光节约时间
}
struct tm *gmtime(const time_t *timep)
函数功能:将日历时间转化为格林威治标准时间,并保存在tm结构
参数:日历时间的返回值
3. 将日历时间转换为本地时间:
struct tm* localtime(const time_t *timep)
函数功能:将日历时间转化为本地时间,并保存至tm结构
参数:日历时间的返回值
4. 时间显示:
(1)char *asctime(const struct tm *tm)
函数功能:将tm格式的时间转化为字符串
参数:日历时间的返回值
(2)char *ctime(const time_t *timep)
函数功能:将日历时间转化为本地时间的字符串形式
参数:日历时间的返回值
5. 获取当日凌晨到现在所度过时间:
int gettimeofday(struct timeval *tv,struct timezone *tz)
函数功能:获取从今日凌晨(0:0:0)到现在的时间差,常用于计算事件耗时
参数1:存放从今日凌晨(0:0:0)到现在的时间差,时间差以秒或微秒为单位,以结构体形式存放
struct timeval
{
int tv_sec; //秒数
int tv_usec; //微秒数
}
参数2:常设置为null
函数用法:可以在做某件事情之前调用gettimeofday(),在做完该件事情之后调用gettimeofday(),两个函数的参数1的差就是做该事情所消耗的时间.
6. 延时函数:
<1>使程序睡眠seconds秒
unsigned int sleep(unsigned int seconds)
函数功能:使程序睡眠seconds秒
参数:需要休眠的秒数
<2>使程序睡眠usec微秒
void usleep(unsigned long usec)
函数功能:使程序睡眠usec微秒
参数:需要休眠的秒数
三.例子:
运行结果:
阅读(895) | 评论(0) | 转发(0) |