Chinaunix首页 | 论坛 | 博客
  • 博客访问: 494431
  • 博文数量: 223
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2145
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-01 10:23
个人简介

该坚持的时候坚持,该妥协的时候妥协,该放弃的时候放弃

文章分类

全部博文(223)

文章存档

2017年(56)

2016年(118)

2015年(3)

2014年(46)

我的朋友

分类: LINUX

2014-04-11 15:42:36

                                 一、时间类

时间类型:
Coordinated Universal Time(UTC):世界标
准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。
 Calendar Time:日历时间,是用“从一个标准时间点(如:1970年1月1日0点)到此时经过的秒数”来表示的时间。

1.1.获取日历时间

   获取日历时间:    time_t time(time_t *t);

   所属头文件:       time.h

   返回值:              成功:返回日历时间 失败:((time_t) -1)

  参数说明:      t:不为空的情况保存返回值

  1. #include <time.h>

  2. void main()
  3. {
  4.     time_t ctime;

  5.     ctime = time(NULL);

  6.     printf("time is %d.\n",ctime);
  7. }


1.2.获取世界标准时间:    struct tm *gmtime(const time_t *timep);
                      将参数timep所指定的日历时间转化为世界标准时间

  所属头文件:          time.h

  返回值:              成功:返回世界标准时间,以struct tm形式存储的    失败:-1

  参数说明:            timep:待转化的时间
注意:此处参数是time_t的指针

  1. #include <time.h>

  2. void main()
  3. {
  4.     time_t ctime;
  5.     struct tm *tm_p;

  6.     ctime = time(NULL);
  7. /*将日历时间转化为世界标准时间*/
  8.     tm_p = gmtime(&ctime);

  9.     printf("UTC is %d:%d:%d.\n",tm_p->tm_hour,tm_p->tm_min,tm_p->tm_sec);
  10. }


1.3.获取本地时间:        struct tm *localtime(const time_t *timep);
                       将参数timep所指定的日历时间转化为本地时间

  所属头文件:          

  返回值:              成功:返回struct tm本地时间 失败:返回NULL

  参数说明:            timep:待转化的日历时间

  1. #include <time.h>

  2. void main()
  3. {
  4.     time_t ctime;
  5.     struct tm *tm_p;

  6.     ctime = time(NULL);

  7.     tm_p = localtime(&ctime);
  8.     if(tm_p == NULL)
  9.     {
  10.         printf("get time failed.\n");
  11.         return;
  12.     }

  13.     printf("localtime is %d:%d:%d.\n", tm_p->tm_hour,tm_p->tm_min, tm_p->tm_sec);

  14. }


1.4.以字符串方式显示时间:        
                      char *asctime(const struct tm *tm);
                       将struct tm 格式的时间转化为字符串

  所属头文件:          

  返回值:              成功:描述值 失败:-1

  参数说明:            tm:待转化的tm格式的时间

  1. #include <time.h>

  2. void main()
  3. {
  4.      time_t ctime;
  5.      struct tm *tm_p;
  6.      char *tm_str;

  7.      ctime = time(NULL);

  8.      tm_p = localtime(&ctime);
  9.      
  10.      tm_str = asctime(tm_p);
  11.      if(tm_str == NULL)
  12.      {
  13.           printf("asctime get failed.\n");
  14.           return;
  15.      }

  16.      printf("asctime is %s",tm_str);

  17. }


1.5.获取高精度时间:        
                       int gettimeofday(stuct timeval *tv,struct timezone *tzone);
                       获取高精度的时间

  所属头文件:          

  返回值:              成功:0 失败:-1

  参数说明:            tv:保存从1970年1月1日0:0:0 到现在经历的秒数和微妙数
                       tzone:通常为NULL
这里我想定义一个结构体指针来实现,发现总是无法获取时间。ret一直是-1;
后来是需要对该指针开辟一个空间,才能使用。

  1. #include <time.h>
  2. #include <sys/time.h>

  3. void func()
  4. {
  5.     int i,j;
  6.     int ret = 0;
  7.   
  8.     for(i=0;i<1000;i++)
  9.         for(j=0;j<1000;j++)
  10.             ret++;
  11. }

  12. void main()
  13. {
  14.     struct timeval *tv1_p;
  15.     struct timeval tv2;
  16.     int ret;

  17.     tv1_p = (struct timeval*)malloc(sizeof(struct timeval));
  18.     ret = gettimeofday(tv1_p , NULL);
  19.     if(ret == -1)
  20.     {
  21.         printf("get time of day failed.\n");
  22.         return;
  23.     }
  24.     
  25.     func();

  26.     ret = gettimeofday(&tv2 , NULL);
  27.     if(ret == -1)
  28.     {
  29.         printf("get time of day failed.\n");
  30.         return;
  31.     }
  32.     
  33.     printf("seconds is %d\nmicroseconds is %d\n",tv1_p->tv_sec - tv2.tv_sec
  34.         ,tv1_p->tv_usec - tv2.tv_usec);
  35.     
  36. }




阅读(605) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~