《QT实用小工具·二十六》运行时间记录

1、概述
源码放在文章末尾

运行时间记录,包含如下功能:

    1. 可以启动和停止服务,在需要的时候启动。
    1. 可以指定日志文件存放目录。
    1. 可以指定时间日志输出间隔。
    1. 可以单独追加一条记录到日志文件。
    1. 日志为文本格式,清晰明了。

软件demo如下所示:

项目部分代码如下:

cpp 复制代码
#ifndef SAVERUNTIME_H
#define SAVERUNTIME_H

/**
 * 运行时间记录
 * 1. 可以启动和停止服务,在需要的时候启动。
 * 2. 可以指定日志文件存放目录。
 * 3. 可以指定时间日志输出间隔。
 * 4. 可以单独追加一条记录到日志文件。
 * 5. 日志为文本格式,清晰明了。
 */

#include <QObject>
#include <QDateTime>

class QTimer;

#ifdef quc
class Q_DECL_EXPORT SaveRunTime : public QObject
#else
class SaveRunTime : public QObject
#endif

{
    Q_OBJECT
public:
    static SaveRunTime *Instance();
    explicit SaveRunTime(QObject *parent = 0);
    ~SaveRunTime();

private:
    static QScopedPointer<SaveRunTime> self;

    //日志文件路径
    QString path;
    //日志文件名称
    QString name;

    //最后的编号
    int lastID;
    //保存间隔
    int saveInterval;
    //开始时间
    QDateTime startTime;
    //日志文件
    QString logFile;
    //保存文件定时器
    QTimer *timerSave;

private:
    //比较两个时间差值
    void getDiffValue(const QDateTime &startTime, const QDateTime &endTime, int &day, int &hour, int &minute);

public Q_SLOTS:
    //启动服务
    void start();
    //停止服务
    void stop();

    //新建目录
    void newPath();
    //初始化日志文件
    void initLog();
    //追加一条记录到日志文件
    void appendLog();
    //保存运行时间到日志文件
    void saveLog();

    //设置文件保存目录
    void setPath(const QString &path);
    //设置文件名称
    void setName(const QString &name);
    //设置保存间隔
    void setSaveInterval(int saveInterval);
};

#endif // SAVERUNTIME_H

源码下载

相关推荐
悲伤小伞2 小时前
Linux_Socket_UDP
linux·服务器·网络·c++·网络协议·udp
丛雨要玩游戏2 小时前
字符函数和字符串函数
c语言·开发语言·算法
八个程序员2 小时前
自定义函数(C++)
开发语言·c++·算法
ad钙奶长高高2 小时前
【C语言】初始C语言
c语言·开发语言·算法
梓仁沐白2 小时前
csapp实验一:datalab
开发语言
侯小啾2 小时前
【17】C语言-gets() 与 fgets() 函数
c语言·开发语言
胡桃夹夹子3 小时前
存档111111111
java·开发语言
不会编程的小寒3 小时前
C++ 中string的用法
java·开发语言
想搞艺术的程序员3 小时前
Go Error 全方位解析:原理、实践、扩展与封装
开发语言·后端·golang