得分:10
![ca56232b3bbedf9a539d07f37fffb99a.gif](https://img8.php1.cn/3cdc5/15cae/b64/194d2497b8669f35.gif)
![3144d8b7615c79d9f638db40d5689d26.gif](https://img8.php1.cn/3cdc5/15cae/b64/691b31309856a37c.gif)
![a218af6549b45ee526caf607ebff1358.gif](https://img8.php1.cn/3cdc5/15cae/b64/f8023391192a875a.gif)
![0f8df0e29816ae721419de940fb833d1.gif](https://img8.php1.cn/3cdc5/15cae/b64/1240238e4baa220f.gif)
time_t time(time_t *t);
其中time_t类型就是long类型,在time.h中已经声明。
time函数返回一个长整数,其值以秒为单位。2次调用此函数,它们返回值的差,即为2次调用之间的时间差(秒数)。使用时,参数可使用空指针。
举一个简单的例子:
#include "stdafx.h"
#include
#include
#include
int main()
{
time_t t1, t2;
int interval;
t1 = time(NULL);
for (int i &#61; 0; i <30000; i&#43;&#43;)
printf("%d\n",i);
t2 &#61; time(NULL);
interval &#61; t2 - t1;
printf("%d\n", interval);
system("pause");
return 0;
}
这个程序的作用是输出“输出3万次”的时间。
需要注意的是time()返回值得单位是秒&#xff0c;只能进行最小以秒为单位的时间控制。
3.4.3.2 localtime函数及应用
接下来我们介绍localtime()&#xff1a;
函数localtime可以把用长整型数值表示的时间变为年、月、日、星期、小时、分、秒等。其原型(在time.h中)是&#xff1a;
struct tm *localtime(time_t *t);
返回值是指向struct tm结构类型的指针。
结构类型struct tm已经在time.h中声明&#xff0c;内容是&#xff1a;
struct tm
{
int tm_sec; // 秒
int tm_min; // 分
int tm_hour; // 小时
int tm_mday; // 日
int tm_mon; // 月
int tm_year; // 年
int tm_wday; // 星期几(0表示星期天)
int tm_yday; // 本年天数
int tm_isdst; // 是否使用了夏时制
};
函数参数是一个指针&#xff0c;指向一个存放用长整型数值表示的时间的变量&#xff0c;通常是指向time函数的返回值。至于为什么要用time的返回值&#xff0c;因为time函数返回的是从1970年1月1日00:00:00到现在的此时此刻所经过的秒数。所以localtime函数只是将这个数值计算成结构体里的变量并赋给结构体&#xff0c;因为time()的最小分度是秒&#xff0c;所以localtime()最小分度也是秒。至于localtime()对于课设的作用&#xff0c;可以在存档的时候记个时间吧。
3.4.3.3 clock函数及应用
time函数是获取系统的实际时间&#xff0c;而clock函数是获取进程使用的cpu时间单元总数。
函数原型&#xff1a;clock_t clock(void);
原型在&#xff1a;time.h 头文件中
功能&#xff1a;用于测试2次调用之间的时间间隔。
返回值类型&#xff1a;clock_t&#xff0c;(实际就是long类型)已经在头文件中声明&#xff0c;程序中可直接使用。
返回值&#xff1a;从程序运行时到本函数被调用经过的处理器时间。此值除以CLOCKS_PER_SEC(即18.2&#xff0c;已经在头文件中声明)则换算为秒数。
#include "stdafx.h"
#include
#include
#include
void isleep(clock_t wait);
void main(void)
{
long i &#61; 60000000L;
clock_t start, finish;
double duration;
// Delay for a specified time.
printf("Delay for three seconds\n");
isleep((clock_t)3 * CLOCKS_PER_SEC);
printf("Done!\n");
//* Measure the duration of an event.
printf("Time to do %ld empty loops is ", i);
start &#61; clock();
printf("%ld\n", start);
while (i--)
;
finish &#61; clock();
printf("%ld\n", finish);
duration &#61; (double)(finish - start) / CLOCKS_PER_SEC;
printf("%10.2f seconds\n", duration);
}
// Pauses for a specified number of milliseconds.
void isleep(clock_t wait)
{
clock_t goal;
goal &#61; wait &#43; clock();
while (goal > clock())
;
}
其中&#xff0c;2次调用clock()函数获得的返回值的差再除以CLOCKS_PER_SEC&#xff0c;就得到2次调用clock()函数所间隔的秒数。
![6f83fddf9cb9ff6843fffd45e1807199.gif](https://img8.php1.cn/3cdc5/15cae/b64/858c959ce4ec0af7.gif)
Code is my life.