C/C++之时间差计算

1、clock函数

C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。
在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:
#define CLOCKS_PER_SEC ((clock_t)1000) 可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。

在如下所示的代码中,并不会输出一个超过3s的值,而是CPU的计算时间。

void test_clock()
{
   long    i = 60000000L;
   clock_t start, finish;
   double  duration;
   double a;

   start = clock();
   printf( "Delay for 3 seconds\n" );
   sleep(3);
   printf( "Done!\n" );

   while( i-- ) {
    a = sqrt(sqrt(16.0)); a = sqrt(sqrt(16.0));

   }
   printf( "Done!\n" );

   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "Total elapsed %lf seconds\n", duration);                                                                                                                            

}

2、time函数

C语言函数difftime
功 能:返回两个time_t型变量之间的时间间隔,即 计算两个时刻之间的时间差。
用 法: double difftime(time_t time2, time_t time1);
头文件:time.h

void test_difftime()
{
    time_t first, second;
    first = time(NULL);
    sleep(3);
    second = time(NULL);
    printf("The difference is: %f seconds\n",difftime(second,first));
}

在程序中对函数计算运行的时间差,应该用difftime方法。

C/C++之时间差计算,布布扣,bubuko.com

时间: 2024-10-17 16:01:52

C/C++之时间差计算的相关文章

Oracle 时间差计算

两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 分钟: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60) 秒: ROUND(TO_NUMBER(END_DATE - START_DATE) *

Javascript时间差计算函数代码实例

<script language="javascript"> Date.prototype.dateDiff = function(interval,objDate){ //若參數不足或 objDate 不是日期物件則回傳 undefined if(arguments.length<2||objDate.constructor!=Date) return undefined; switch (interval) { //計算秒差 case "s":

jsp页面根据当前时间和定义时间差计算动态倒计时

http://www.jb51.net/article/74140.htm var maxtime =1000*60; //半个小时,按秒计算,自己调整!    second=maxtime/1000;    // 写一个方法,将秒数专为天数    var toDays = function(){     var s = second % 60; // 秒     var mi = (second - s) / 60 % 60; // 分钟    var h = ((second - s) /

python 时间差计算

例如:时间格式是 2020-01-29 16:31:31和2025-01-23 15:30:30,怎么求得两个时间相减的时间差? 具体如下: import time as t import datetime as d #定义时间差函数 def myDate(date1, date2):     date1 = t.strptime(date1, "%Y-%m-%d %H:%M:%S")     date2 = t.strptime(date2, "%Y-%m-%d %H:%M

时间差计算

//是不是过了指定的天数 - (BOOL) isAfterDays:(int) days { NSDate * sendDate = [NSDate date]; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString * locationString = [dateFormatter

Sql同一列中两条数据时间差计算

问题:从提出需求到需求通过,中间会经历不确定次数的“驳回->撤销驳回”的操作,所有的操作时间都位于同一列.求:需求从提出到通过经历的时间(不包含“驳回-撤销驳回”所消耗的时间) PS: “驳回->撤销驳回”操作成对出现:且按时间顺序排列. 1. 建表 IF OBJECT_ID('tempdb..#logs','U')is NOT NULL DROP TABLE #logs IF OBJECT_ID('tempdb..#logs2','U')is NOT NULL DROP TABLE #log

时间差计算(给定两时间,转换为时间差)

-(NSString *)getchaWithBegin:(NSString *)begin WithEnd:(NSString *)end { [email protected]"20150615184030"; end= @"20150615204130"; NSCalendar *cal = [NSCalendar currentCalendar]; NSInteger unitFlag = NSYearCalendarUnit | NSMonthCalend

oracle时间差计算

1.months_between(date1,date2);date1和date2相减得到相差的月份. select months_between(to_date('2015-05-11','yyyy-MM-dd'),to_date('2015-04-11','yyyy-MM-dd')) from dual :相差一个月. 2.ceil(date1-date2);date1-date2相减得到相差的天数 select ceil(To_date('2015-05-11 00:00:00' , 'y

PHP时间比较和时间差如何计算

1.<?php 2. $zero1=date("y-m-d h:i:s"); 3. $zero2="2010-11-29 21:07:00′; 4. echo "zero1的时间为:".$zero1."<br>"; 5. echo "zero2的时间为:".$zero2."<br>"; 6. if(strtotime($zero1)<strtotime($zer