关于计时的操作

头文件

#pragma once
// 精确获得算法处理时间的类(毫秒量级)
class DT_Time
{
    public:	
    DT_Time();
	// 计时开始	
	void TimeStart(void);	
	// 计时结束	
	void TimeEnd(void);	
	// 获得耗时(单位:毫秒)
	double GetElapseTime(void);  
	CString GetFormatTime(long ms);  //把毫秒转换成天/时/分/秒/毫秒
    private:	
    double m_ElapseTime;// 算法处理时间 (单位: ms)	
    LARGE_INTEGER new_time, old_time, frequency;// 计数值
 }; 

源文件

#include "StdAfx.h"
#include "DT_Time.h"
// 计时开始 
DT_Time::DT_Time()
{   
 m_ElapseTime = 0;
 } 
void DT_Time::TimeStart(void)
{   
  m_ElapseTime = 0;   
  QueryPerformanceFrequency(&frequency);    
  QueryPerformanceCounter(&old_time);
}
 // 计时结束
void DT_Time::TimeEnd(void)
{    
  QueryPerformanceCounter(&new_time); 
     m_ElapseTime = (double)(new_time.QuadPart - old_time.QuadPart) / (double)frequency.QuadPart * 1000;
} 

// 获得算法处理时间 (单位: ms)
double DT_Time::GetElapseTime(void)
{    
  return m_ElapseTime;
} 

//把毫秒转换成天/时/分/秒/毫秒
CString DT_Time::GetFormatTime(long ms)
{	
//时间基数	
int ss = 1000;	
int mi = ss * 60;
int hh = mi * 60;	
int dd = hh * 24; 	

//转换成天/时/分/秒/毫秒	
long day = ms / dd;	
long hour = (ms - day*dd) / hh;
long minute = (ms - day*dd - hour*hh) / mi;
long second = (ms - day*dd - hour*hh - minute*mi) / ss;	
long millisecond = ms - day*dd - hour*hh - minute*mi - second*ss; 	
CString strTime = "",temp; 	
if (day > 0)	
{		
temp.Format("%d", day);		
strTime += temp + _T("天");	}	
if (hour > 0)
{		temp.Format("%d", hour);		strTime += temp + _T("时");	
}	
if (minute > 0)	
{		
temp.Format("%d", minute);		
strTime += temp + _T("分");	
}	
if (second > 0)	
{		
temp.Format("%d", second);		
strTime += temp + _T("秒");	
}	
if (millisecond > 0)	
{		
temp.Format("%d", millisecond);		
strTime += temp + _T("毫秒");	
}  	
return strTime;
}


```cpp

实际运用

头文件

DT_Time m_timer;

源文件

   m_timer.TimeStart();
   m_timer.TimeEnd();
   m_TestTime = m_timer.GetElapseTime();
   m_strTime = m_timer.GetFormatTime(m_TestTime);
   GetDlgItem(IDC_OS_TIME)->SetWindowTextA(m_strTime);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值