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 ...
随机推荐
- Android特性与系统架构
Android特性与系统架构 一.Android特性 • 应用程序框架支持组件的重用与替换 • Dalvik 虚拟机专为移动设备优化 • 集成的浏览器基于开源的WebKit 引擎 • 优化的图形库包括 ...
- 莫名其妙的js脚本文件引用不到
今天遇到一个很奇怪的问题,在页面中引用的脚本文件,引用路径没有问题,而且在很多浏览器中都测试没有问题,包括Win8 Modren UI下的IE11也同样没有问题,唯独Win8桌面版的IE11无法引用. ...
- Ip地址和子网掩码和CIDR无间别域间路由
开始,网络的制定者将网络划分为A,B,C三种网络,想这个样子: A类网: xxx.0.0.0 子网掩码:255.0.0.0 xxx.0.0.0/8 //后面的数字代表网络地址的字段 ...
- 基于FPGA的线阵CCD实时图像采集系统
基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处理 ...
- spring bean autowire自动装配
转自:http://blog.csdn.net/xiao_jun_0820/article/details/7233139 autowire="byName"会自动装配属性与Bea ...
- Webpack中的sourcemap
Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换 ...
- 78. Longest Common Prefix【medium】
Given k strings, find the longest common prefix (LCP). Example For strings "ABCD", " ...
- Web应用程序开发的标准架构
- 一款由jquery实现的超炫的页面加载特效
今天为大家带来一款由jquery实现的超炫的页面加载特效.连续的几个页面分开特效.最后由三维的线条由远至近消失,然后由近至远出现.效果超级梦炫.一起看下效果图: 在线预览 源码下载 实现的代码. ...
- 【iOS】TableView的footerView不随cell滚动而停留在tableView底部的问题
苹果官方给我提供TableView的FooterView和HeaderView停留在顶部的非常不错效果,有时候我们不须要这些FooterView和HeaderView停留在底部或者上部,如今就以Foo ...