C++之程序时间统计类实现
/**********
TimeCounter.h
huangsy13@gmail.com
**********/
#ifndef TIMECOUNTER
#define TIMECOUNTER #include <iostream>
#include <cstring>
#include <ctime>
#include <sstream>
#include <cstdlib>
#include "FileStruct.h" using namespace std; struct TimeCounter{
time_t beginT;
time_t nowT;
int totalTask;
int completeTask;
string lastUseT;
void setUp(int totalTask0){
totalTask = totalTask0;
nowT = ;
beginT = time(NULL);
}
bool update(int taskNow){
nowT = time(NULL);
completeTask = taskNow;
if (lastUseT == useTime() && completeTask < totalTask){
return false;
}
else{
lastUseT = useTime();
return true;
}
}
string useTime(){
int r = nowT - beginT;
return getTimeStr(r);
}
string restTime(){
if(completeTask == ){
return "unknow";
}
int restTT = double(totalTask-completeTask)*double(nowT-beginT)/double(completeTask);
return getTimeStr(restTT);
}
string getTimeStr(int r){
int rs = r;
int rh = rs/;
int rm = rs/;
string str;
if (rh != ){
str = numToStr(rh) + " hours ";
}
if (rs >= ){
str += numToStr(rm%) + " minutes ";
}
str += numToStr(rs%) + " seconds";
return str;
}
string percent(){
int p = *completeTask/totalTask;
return numToStr(p)+"%";
}
void print(bool clear){
if (clear) system("clear");
cout << "use time " << useTime()<<endl;
cout << "rest Time "<< restTime() <<endl;
cout << "complete " << percent() << endl;
}
void updateAndPrint(int nn,bool clear = true){
if(update(nn)){
print(clear);
}
}
}; #endif /*********
main.cpp
huangsy13@gmail.com
*********/
#include <iostream>
#include <cstring>
#include <ctime>
#include <sstream>
#include <cstdlib>
#include "TimeCounter.h" using namespace std; int main(){
TimeCounter T;
int totalTask = ;
T.setUp(totalTask);
int taskNow = ;
while(taskNow < totalTask){
T.updateAndPrint(++taskNow);
for (int i = ; i < ; i++){
int a = ;
int b = ;
while(a != b){
a++;
}
}
}
}
C++之程序时间统计类实现的更多相关文章
- c++程序时间统计
如下所示,引入<time.h>我们就可以统计时间了: #include<iostream> #include<time.h> #include<windows ...
- Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式
要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...
- 整理总结 python 中时间日期类数据处理与类型转换(含 pandas)
我自学 python 编程并付诸实战,迄今三个月. pandas可能是我最高频使用的库,基于它的易学.实用,我也非常建议朋友们去尝试它.--尤其当你本身不是程序员,但多少跟表格或数据打点交道时,pan ...
- H5性能测试,首屏时间统计(Argus)
Argus 腾讯质量开发平台,官网链接:https://wetest.qq.com/product/argus 主要针对性:H5的游戏性能测试 主要介绍: 独家首屏时间统计: 告别人工掐秒 自动统计首 ...
- C++高精度计时器——微秒级时间统计
在C++中,经常需要通过计时来统计性能信息,通过统计的耗时信息,来分析性能瓶颈,通常情况下,可能毫秒级别的时间统计就足够用了,但是在毫厘必争的性能热点的地方,毫秒级别的统计还是不够的,这种情况下,就需 ...
- 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...
- 微信小程序退款 处理类
<?php /** * 微信小程序退款 处理类参考https://www.cnblogs.com/afei-qwerty/p/7922982.html * */ class WeixinRefu ...
- C# 程序内的类数量对程序启动的影响
原文:C# 程序内的类数量对程序启动的影响 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http://lindexi.gitee.i ...
- 2018-10-31-C#-程序内的类数量对程序启动的影响
title author date CreateTime categories C# 程序内的类数量对程序启动的影响 lindexi 2018-10-31 14:7:6 +0800 2018-10-1 ...
随机推荐
- opencv源代码分析:icvGetTrainingDataCallback简单介绍
/* *函数icvGetTrainingDataCallback介绍 *功能:对全部样本计算特征编号从first開始的num个特征,并保存到mat里. *输入: *CvMat* mat矩阵样本总数个行 ...
- spring sessionFactory 属性配置详解,applicationContext中各种属性详解
1.Bean的id为sessionFactory,对应的类为AnnotationSessionFactory,即采用注解的形式实现hibernate. 2.hibernateProperties,配置 ...
- mysql-5.7中innodb_buffer_pool页面淘汰算法
一. 什么是innodb_buffer_pool: innodb_buffer_pool是一块内存区域,innodb用它来缓存数据,索引,undo,change buffer ... : 这块区域又被 ...
- 利用PHPExcel实现数据保存到excel文件
include(dirname(__FILE__) .'/phpexcel-1.7.7/Classes/PHPExcel.php'); include(dirname(__FILE__) .'/php ...
- sourcetree和Git的使用教程
1.简单的用Git管理项目. 2.怎样既要开发又要处理发布出去的版本bug情况. SourceTree是一个免费的Git图形化管理工具,mac下也可以安装. 下载地址:https://www.sour ...
- unity hide/show text
using UnityEngine;using System.Collections; public class PlayerController:MonoBehaviour{ public U ...
- servlet中 getRealPath deprecated(被废弃)
servlet中, HttpRequestServlent req; req.getRealPath 被废弃,使用this.getServletContext().getRealPath()替代:
- Logstash怎么导入csv
Logstash.Conf input { file { type => "SSRCode" path => "E:/FTPRootWorkSpace/SD/ ...
- Android Spans介绍(转)
在做一个 TODO 类的软件,使用开源软件 MaterialCalendarView 的时候,发现了需要往日历中添加待办事宜的标记,用到了 MaterialCalendarView 中的 DotSpa ...
- OS memory
https://blogs.technet.microsoft.com/askperf/2013/05/03/finally-a-windows-task-manager-performance-ta ...