一个计算开机时间的小程序

#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
	DWORD tick;
	int i=0;
	while(true)
	{
		tick=GetTickCount();
		int hour=tick/1000/3600;
		int minute=tick/1000/60-hour*60;
		int second=tick/1000-hour*3600-minute*60;
		cout<<"开机时间是:"<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
		Sleep(1000);
	}
}

函数名称:GetTickCount

函数功能:返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。  

函数原型: DWORD GetTickCount(void);

需要的头文件:windows.h

它还有一个作用就是计算程序运行的时间,方法是记录起始时间和终止时间,然后相减就可以了。而要记录的程序段就放在两个GetTickCout之间。举例如下:

 

#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
	DWORD tick;
	int i=0;
	while(i<10000000)
	{
		i++;
	}
	cout<<GetTickCount()-tick<<endl;
}

注意事项:

GetTickcount函数:它返回从操作系统启动到当前所经过的毫秒数,常常用来判断某个方法执行的时间,其函数原型是DWORD GetTickCount(void)返回值以32位的双字类型DWORD存储,因此可以存储的最大值是232 ms约为49.71天,因此若系统运行时间超过49.71天时,这个数就会归0MSDN中也明确的提到了:"Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days."。因此,如果是编写服务器端程序,此处一定要万分注意,避免引起意外的状况

 

我们同样可以使用clock来进行程序运行的计算。

函数名称:clock

函数功能: 返回处理器调用某个进程或函数所花费的时间

函数用法: clock_t clock(void);

函数说明:clock_t其实就是long,即长整形。该函数返回值是硬件滴答数,要换算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000,这表示硬件滴答1000下是1秒,因此要计算一个进程的时间,用clock()除以1000即可。

首先我们通过一个程序来说明问题:

#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
void main()
{
	clock_t start,end;
	int i=0;
	start=clock();
	cout<<start<<endl;
	Sleep(10000);
	end=clock();
// 	cout<<end<<endl;
// 	Sleep(1000);
// 	cout<<clock()<<endl;;
	cout<<end-start<<endl;
}

运行结果:

 

0

10000

11000

10000

Press any key to continue

 上面的程序实现了计算测试程序运行的时间。而注释掉的部分是让大家了解,在程序运行过程中,第一次使用clock时,它的初始值为0,以后每次调用该函数,都是在第一次的基础上进行的计算,所以第二次(end)的结果是1000,第三次的结果是1100(同样是在第一次的基础上进行的)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值