linux应用编程学习(1)时间类

来源:互联网 发布:mysql给root设置权限 编辑:程序博客网 时间:2024/05/21 19:25
                                 一、时间类

时间类型:
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. }




<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(211) | 评论(0) | 转发(0) |
0

上一篇:系统函数学习

下一篇:linux应用编程学习(2)系统调用文件类

相关热门文章
  • 欢迎天涯学习在ChinaUnix博客...
  • Win10+Qt5.6+OpenCV3.1__相关...
  • Python 包管理工具解惑
  • Qt学习笔记---信号与槽...
  • APP开发报价单,如何计算APP报...
  • linux 常见服务端口
  • xmanager 2.0 for linux配置
  • 【ROOTFS搭建】busybox的httpd...
  • openwrt中luci学习笔记
  • 什么是shell
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
原创粉丝点击