您的位置:首页 > 运维架构 > Linux

Linux笔记_时间编程

2015-01-24 21:57 323 查看
**********************时间编程*****************
//////////////////////////////////////////////////////////////////////////////
时间类型
1)Coordinated Universal Time(UTC):世界标准时间(格林威治标准时间)
2)Calendar Time:日历时间,是用"从一个标准时间点(如:1970年1月1日0时)到此时经过的秒数"来表示的时间

1.时间获取

#include <time.h>  time_t time(time_t *tloc)---------time_t  t;  t = time(NULL)
功能:获取日历时间,即从1970年1月1日0时到此时经过的秒数

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

struct tm *localtime(const time_t *timep)
功能:将日历时间转化为本地时间,并保存至TM结构



3.时间显示
char *asctime(const struct tm *tm)
功能:将tm格式的时间转化为字符串

char *ctime(const time_t *timep)
功能:将日历时间转化为本地时间的字符串形式

4.获取时间
int gettimeofday(struct timeval *tv,struct timezone *tz)  
功能:获取从今日凌晨到现在的时间差,常用于计算事件耗时
struct timeval{
     int tv_sec;  // 秒数
     int tv_usec;//微秒数
}
//用法gettimeofday(&start,NULL);gettimeofday(&over,NULL); 再用两个时间相减

5.延时执行
unsigned int sleep(unsigned int seconds) //功能:使程序睡眠seconds秒

void usleep(unsigned long usec) //功能:使程序睡眠usec微秒

/////////////////////////////////////////////////////////////////////////////////
代码例子:
#include <time.h>

#include <stdio.h>

int main(void)

{

   

     struct tm *local;

   

     time_t t;

    /* 获取日历时间 */

   

     t=time(NULL);

   

    /* 将日历时间转化为本地时间 */

   

     local=localtime(&t);

    /*打印当前的小时值*/

   

     printf("Local hour is: %d\n",local->tm_hour);

   

    /* 将日历时间转化为格林威治时间 */

   

     local=gmtime(&t);

   

     printf("UTC hour is: %d\n",local->tm_hour);

   

     return 0;

}

*******************************************
#include <time.h>

#include <stdio.h>

int main(void)

{

   

     struct tm *ptr;

   

     time_t lt;

   

         /*获取日历时间*/

   

     lt=time(NULL);

   

    /*转化为格林威治时间*/

   

     ptr=gmtime(<);

   

    /*以格林威治时间的字符串方式打印*/

   

     printf(asctime(ptr));

   /*以本地时间的字符串方式打印*/

   

     printf(ctime(<));

   

     return 0;

}

******************************************
#include <sys/time.h>

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

/* 算法分析 */

void function()

{

    

     unsigned int i,j;

    

     double y;

    

     for(i=0;i<1000;i++)

         

          for(j=0;j<1000;j++)

              

          y++;

}

main()

{

    

     struct timeval tpstart,tpend;

    

     float timeuse;

    

     gettimeofday(&tpstart,NULL); // 开始时间

    

     function();

    

     gettimeofday(&tpend,NULL);   // 结束时间

     /* 计算执行时间 */

    

     timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ tpend.tv_usec-tpstart.tv_usec;

     timeuse/=1000000;

    

     printf("Used Time:%f\n",timeuse);

    

     exit(0);



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 时间编程