现在的位置: 首页 > 综合 > 正文

Linux应用开发(六):时间编程

2013年09月15日 ⁄ 综合 ⁄ 共 1272字 ⁄ 字号 评论关闭

一、鸡肋

   UTC,Coordinated Universal Time,协调世界时间,就是大家熟知的格林威治时间(Greenwich Mean Time,GMT)

   Calendar Time:日历时间,所谓的日历时间就是用“从一个标准的时间点(如1970年1月1日0点),到此时经过的秒数”来表示的时间

二、时间编程

   1、获取日历时间:time_t time(time_t * tloc);

      怎么用:

         (1)需要引入头文件:#include <time.h>

         (2)time_t,的原型是 typedef long time_t

         (3)获取从1970年1月1日0点到现在所经历的秒数

         (4)如果time的形参不为NULL,则此函数还可以把结果返回到tloc指向的变量中去

   2、时间转化: 

         (1)struct tm * gmtime(const time_t * timep);

         (2)struct tm * localtime(const time_t * timep) 

      怎么用:

         (1)将日历时间转化为grrnwich time(gm)格林威治时间,将结果保存到TM结构体中

         (2)将日历时间转化为本地时间,将结果保存到TM结构体中

         (3)看下tm结构的庐山真面目:              

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;//日光节约时间
}

       3、时间显示函数

         (1)将tm格式的时间转化为字符串,如 Sat Jul 30 08:43:03 2005

            char * asctime(const struct tm * tm);

        (2)将日历时间转化为本地时间的字符串形式,如Jul 30 08:43:03 2005

           
char * ctime(const time_t * timep);

   4、获取今天的时间函数:int gettimeofday(struct timeval * tv,struct timezone * tz);

      怎么用:

        (1)获取从今天凌晨0点开始到现在所经历的秒数和微秒数,将结果保存到timeval这个结构中,它常用于计算事件的耗时、执行时间等。

       
(2)timeval的结构体样子:

             stuct timeval{

               
int tv_sec; //秒数

               
int tv_usec;//微妙数

             }

   5、睡眠函数:

       
(1)使程序睡眠seconds秒:unsigned int sleep(unsigned int seconds) ;

       
(2)使程序睡眠usec微秒:void usleep(unsigned long usec);

 

          

抱歉!评论已关闭.