c语言时间计算
⑴ c语言运行一条语句所用时间如何计算
把time.h
include进来
然后在代码的前面和后面都加一条代码,获得时间
long
start=clock();
long
end=clock();
两个减一下就是秒数
⑵ C语言求一个程序运行时间
C/C++中的计时函数是clock()。
所以,可以用clock函数来计算的运行一个循环、程序或者处理其它事件到底花了多少时间,具体参考代码如下:
#include“stdio.h”
#include“stdlib.h”
#include“time.h”
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
/*测量一个事件持续的时间*/
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}
⑶ C语言运行一条语句所用时间如何计算
unsigned long HighStart,LowStart,HighEnd,LowEnd;
__int64 start =0;
__int64 end = 0;
__int64 timer =0;
//获取代码运行开始时cpu内部计数器的值
__asm
{
RDTSC
mov HighStart, edx
mov LowStart, eax
}
for(int i= 0; i<100000; i++ )
{
for(int i= 0; i<100000; i++ )
{
}
}
//获取代码结束时cpu内部计数器的值,并减去初值
__asm
{
RDTSC
mov HighEnd, edx
mov LowEnd, eax
}
start = (__int64) HighStart<<32;
start |= (__int64) LowStart;
end = (__int64) HighEnd<<32;
end |= (__int64) LowEnd;
timer = end - start;
//输出代码段运行的时钟周期数
//以频率1.1Gcpu为例,如果换计算机把其中的2.6改乘其它即可,因为相信大家的cpu都应该在1G以上 ^_^
cout<< (double) (timer /2.6/1000000000) << endl;
return 0;
⑷ c语言编程,怎么计算时间
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
unsigned char time1[] = {10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( &t1 );
_t2 = _mkgmtime( &t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分钟
", diff / 60 );
}
(4)c语言时间计算扩展阅读:
C语言中有两个相关的函数用来计算时间差,分别是:
time_t time( time_t *t) 与 clock_t clock(void)
头文件: time.h
计算的时间单位分别为: s , ms
time_t 和 clock_t 是函数库time.h 中定义的用来保存时间的数据结构
返回值:
1、time : 返回从公元1970年1月1号的UTC时间从0时0分0秒算起到现在所经过的秒数。如果参数 t 非空指针的话,返回的时间会保存在 t 所指向的内存。
2、clock:返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。 1单元 = 1 ms。
所以我们可以根据具体情况需求,判断采用哪一个函数。
具体用法如下例子:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //!< 单位为ms
t_start = time(NULL); //!< 单位为s
system("pause");
c_end = clock();
t_end = time(NULL);
//!<difftime(time_t, time_t)返回两个time_t变量间的时间间隔,即时间差
printf("The pause used %f ms by clock() ",difftime(c_end,c_start));
printf("The pause used %f s by time() ",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要计算某一函数块的占用时间时,只需要在执行该函数块之前和执行完该函数块之后调用同一个时间计算函数。再调用函数difftime()计算两者的差,即可得到耗费时间。
⑸ c语言如何计算两个时间相差多少
任意输入两个24小时制的时间,输出两个时间的时间差;
⑹ C语言计算时间函数
标准库的time.h里有时间函数
time_t time (time_t *timer)
计算从1970年1月1日到当前系统时间,并把结果返回给timer变量,
函数本身返回的也是这个结果.time_t这个类型其实就是一个int.
另有:
double difftime ( time_t timer2, time_t timer1 )
把返回time2和time1所储存的时间的差.
⑺ 计算C语言程序运行时间(hello world)
#include "time.h"
#include "stdio.h"
main()
{
double start, finish;
start = clock();//取开始时间
printf("Hello, World!\n");
finish = clock();//取结束时间
printf( "%f seconds\n",(finish - start) / CLOCKS_PER_SEC);//以秒为单位显示之
}
上面的代码理论上是可以显示printf("Hello, World!\n");语句的运行时间的,但我猜实际的显示结果是0,因为printf("Hello, World!\n");这个语句的运行时间是可以忽略不计的,加一个次数较多的循环才能看到效果
⑻ C语言 计算时间A+B
#include<stdio.h>
struct Time
{
int hours,mins,secs;
};
class TIME
{
Time t;
public:
TIME(){t.hours=0;t.mins=0;t.secs=0;};
Time getTime(){return this->t;}
void settime();
void addtime(Time);
void print();
TIME operator+(TIME);
};
main()
{
TIME a,b,c;
a.settime();
//a.print();
b.settime();
//b.print();
c=a+b;
//c.print();
}
void TIME::settime()
{
printf("请输入小时,分钟,秒钟:(格式按照5h 3m 4s来写)\n");
scanf("%dh%dm%ds",&this->t.hours,&this->t.mins,&this->t.secs);
printf("\n");
}
void TIME::print()
{
printf("%dh %dm %ds \n",this->t.hours,this->t.mins,this->t.secs);
}
TIME TIME::operator+(TIME t)
{
TIME t1;
t1.t.hours=this->t.hours+t.t.hours;
t1.t.mins=this->t.mins+t.t.mins;
t1.t.secs=this->t.secs+t.t.secs;
if (t1.t.secs>=60)
{
t1.t.mins++;
t1.t.secs-=60;
}
if (t1.t.mins>=60)
{
t1.t.hours++;
t1.t.mins-=60;
}
this->print();
printf("和\n");
t.print();
printf("时间之和为:\n");
t1.print();
return t1;
}
输入格式按照 XXhXXmXXs 输入就可以了。输入不合法也没有关系。只要别输入的是字母就OK。输入2个,就可以输出答案了。如果还要继续,你只要添加TIME 类 如TIME d,然
d.settime();是输入时间,时间相加直接用+表示就OK了,比如d+c,d+a,我已经重载过+号运算符了,能够对时间类进行加法运算!