linux历程--时间编程

来源:互联网 发布:苹果cms采集插件 编辑:程序博客网 时间:2024/05/17 23:50
1)时间类型
     UTC:世界标准时间,即格林威治标准时间(GMT);
     Calendar Time:日历时间,是用“从一个标准时间点(如:1970年1月1日0点)到此时经历的秒数”来表示的时间。


2)时间获取
    #include <time.h>
          // typedef long time_t
          time_t time(time_t *tloc)
   功能:获取日历时间,即从1970年1月1日0时到现在所经历的秒数。


3)时间转化
   struct tm *gmtime(const time_t *timep)
   功能:将日历时间转化为格林威治标准时间,并保存至TM结构。
   struct tm *localtime(const time_t *timep)
   功能:将日历时间转化为本地时间,并保存至TM结构。


4)时间保存(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;  //日光节约时间
    }


5)例:time.c
   #include<time.h>
   #include<stdio.h>
   int main(void) {
       time_t  t;
       struct tm *local;
       t = time(NULL);
       local = localtime(&t);
       printf("Local hour is: %d\n", local->tm_hour);
       printf(ctime(&t));
       local = gmtime(&t);
       printf(asctime(local));
       return 0;
   }


6)时间显示
      char *asctime(const struct tm *tm)
   功能:将tm格式的时间转化为字符串,如:
      Mon Jul 28 09:25:01 2005
      
      char *ctime(const time_t *timep)
   功能:将日历时间转化为本地时间的字符串形式。


6)获取时间
     int gettimeofday(struct timeval *tv, struct timezone *tz)
   功能:获取从今日凌晨到现在的时间差,常用于计算事件耗时。
     struct timeval {
         int tv_sec; //秒数
         int tv_usec; //微秒数
     }
   如:计算函数function()运行时间,片段如下:
         struct timeval tvstart, tvend;
         float timeuse;
         gettimeofday(&tvstart, NULL); //开始时间
         function();
         gettimeofday(&tvend, NULL); //结束时间
         //计算执行时间
         timeuse = 1000000*(tvend.tv_sec-tvstart.tv_sec)
                   + (tvend.tv_usec-tvstart.tv_usec);
         timeuse /= 1000000;


7)延时执行
      unsigned int sleep(unsigned int seconds)
   功能:使程序睡眠seconds秒
      void usleep(unsigned long usec)
   功能:使程序睡眠usec微秒
原创粉丝点击