公众号【嵌入式er笔记】持续记录和分享C/C++、Linux、ARM、Android、IoT等技术相关知识,以及职场、生活经验和感悟。
分类:
2012-09-09 18:57:09
form:luozhiyong131.blog.chinaunix.net
gettimeofday 例子程序 计算时间差
void function()
{
unsigned int i,j;
double y;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
y=sin((double)i); //耗时操作
}
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);
}
GNU/Linux提供了各种各样的处理时间的函数(日期和时间),时间通常用tm结构体表示:
struct tm
{
int tm_sec; /*0-59的秒数*/
int tm_min; /* 0-59的分数 */
int tm_hour; /* 0-23的小时数 */
int tm_mday; /*1-31的日期数*/
int tm_mon; /*0-11的月数*/
int tm_year; /* 从1900 年算起至今的年数 */
int tm_wday; /*0-6的星期数 0=Sunday */
int tm_yday; /*0-365的天数*/
int tm_isdst; /*日光节约时间的旗标(0,1,-1)*/
};
#include
time_t time(time_t *t); //取得目前的时间,返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数
struct tm *localtime(const time_t *timep); //取得当地目前时间和日期,时间日期已经转换成当地时区
struct tm *gmtime(const time_t *timep); //取得目前时间和日期,UTC时间
char *asctime(const struct tm *tm);//将时间和日期以字符串格式表示
char *ctime(const time_t *timepDay); //将时间和日期以字符串格式表示
time_t mktime(struct tm *tm); //将时间结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数
注:UTC世界协调时间