一、timeb结构体在"sys/timeb"头文件中的定义
time_t time /* 当前时间秒单位上的数值 */ unsigned short millitm /* 当前时间毫秒单位上的数值 */ short timezone /* 西格林威治时间以分钟标示的本地时区 */ short dstflag /* 如果夏令时有效的话,dstflag=true */
解释:
1、time是从UTC时间1970年1月1日午夜(00:00:00)起累计的秒数;
1318756603秒约合为15263天,约合为41年(本年2011年)
2、millitom是毫秒上的数值(不足一秒的部分)
3、timezone为目前时区和Greenwich相差的时间,单位为分钟
480分钟=8个小时,
4、dstflag为0,说明这不是夏令时时间
关于什么是夏令时,参见http://baike.baidu.com/view/100246.htm#3
二、计算程序的运行时间
#include<iostream>#include<sys/timeb.h>
using namespace std;
//1-1/x+1/x*x...
int main()
{
timeb t1,t2;//t1=starttime;t2=endtime
long t;//t=use time;
double x,sum=1,sum1;
int i,j,n;//i,j loop value;n=times of loop
cout<<"Please output x n:";
cin>>x>>n;
ftime(&t1);
for(i=1;i<=n;i++)
{
sum1=1;
for(j=1;j<=i;j++)
sum1=sum1*(-1.0/x);
sum+=sum1;
}
ftime(&t2);
t=(t2.time-t1.time)*1000+(t2.millitm-t1.millitm);
cout<<"sum="<<sum<<" ;time="<<t<<"ms"<<endl;
return 0;
}
//来自于《数据结构算法实现及解析》高一凡版