要完整的显示程序已运行时间则需要
在定时器触发响应函数中动态获取时间
原理是将动态获取到的时间减去程序启动时的时间
就等于程序已经运行的时间 根据其原理
void CMy12Dlg::OnTimer(UINT nIDEvent)
{
... //省略部分代码
CTime time2; //等于CTime类对象
CString str2,str3; //定义字符串
time2=CTime::GetCurrentTime(); //获取当前系统时间
str2=time2.Format("%M"); //格式化输出时间分钟部分
str3=time2.Format("%S"); //格式化输出时间秒钟部分
int mtime=atoi(str2); //将分钟部分转换为整形数据
int stime=atoi(str3); //将秒钟部分转换为整形数据
int a;
if((mtime-mtime1)==1) //判断分钟数是否相差1
{
a=stime+60-stime1; //直接使秒钟相减得到运行时间
}
else
{
a=((mtime-mtime1-1)*60+stime)-stime1;
//使用分钟的差值乘以60与启动时间相减
}
this->SetWindowText((CString)itoa(a));//设置窗口标题
... //省略部分代码
}
启动时间是当前时间减去启动时间
分两种情况
一个相差1分钟
一个是相差1分钟以上
将分钟数和秒数分开算