新增存款计算器

This commit is contained in:
feiyangqingyun
2021-10-07 11:01:02 +08:00
parent 38cd834ac1
commit f6923b97a2
14 changed files with 378 additions and 91 deletions

View File

@@ -42,23 +42,6 @@ SaveRunTime::SaveRunTime(QObject *parent) : QObject(parent)
connect(timerSave, SIGNAL(timeout()), this, SLOT(saveLog()));
}
void SaveRunTime::start()
{
//开始时间变量必须在这,在部分嵌入式系统上开机后的时间不准确比如是1970,而后会变成1999或者其他时间
//会在getDiffValue函数执行很久很久
startTime = QDateTime::currentDateTime();
timerSave->start();
initLog();
appendLog();
saveLog();
}
void SaveRunTime::stop()
{
timerSave->stop();
}
void SaveRunTime::getDiffValue(const QDateTime &startTime, const QDateTime &endTime, int &day, int &hour, int &minute)
{
qint64 sec = startTime.secsTo(endTime);
@@ -86,6 +69,32 @@ void SaveRunTime::getDiffValue(const QDateTime &startTime, const QDateTime &endT
}
}
void SaveRunTime::start()
{
//开始时间变量必须在这,在部分嵌入式系统上开机后的时间不准确比如是1970,而后会变成1999或者其他时间
//会在getDiffValue函数执行很久很久
startTime = QDateTime::currentDateTime();
timerSave->start();
initLog();
appendLog();
saveLog();
}
void SaveRunTime::stop()
{
timerSave->stop();
}
void SaveRunTime::newPath()
{
//检查目录是否存在,不存在则先新建
QDir dir(path);
if (!dir.exists()) {
dir.mkdir(path);
}
}
void SaveRunTime::initLog()
{
//判断当前年份的记事本文件是否存在,不存在则新建并且写入标题
@@ -93,6 +102,7 @@ void SaveRunTime::initLog()
//幢号 开始时间 结束时间 已运行时间
//1 2016-01-01 12:33:33 2016-02-05 12:12:12 day: 0 hour: 0 minute: 0
newPath();
logFile = QString("%1/%2_runtime_%3.txt").arg(path).arg(name).arg(QDate::currentDate().year());
QFile file(logFile);
@@ -127,6 +137,7 @@ void SaveRunTime::initLog()
void SaveRunTime::appendLog()
{
newPath();
logFile = QString("%1/%2_runtime_%3.txt").arg(path).arg(name).arg(QDate::currentDate().year());
QFile file(logFile);
@@ -150,6 +161,7 @@ void SaveRunTime::appendLog()
void SaveRunTime::saveLog()
{
//每次保存都是将之前的所有文本读取出来,然后替换最后一行即可
newPath();
logFile = QString("%1/%2_runtime_%3.txt").arg(path).arg(name).arg(QDate::currentDate().year());
QFile file(logFile);
@@ -199,16 +211,12 @@ void SaveRunTime::saveLog()
void SaveRunTime::setPath(const QString &path)
{
if (this->path != path) {
this->path = path;
}
this->path = path;
}
void SaveRunTime::setName(const QString &name)
{
if (this->name != name) {
this->name = name;
}
this->name = name;
}
void SaveRunTime::setSaveInterval(int saveInterval)

View File

@@ -12,6 +12,7 @@
#include <QObject>
#include <QDateTime>
class QTimer;
#ifdef quc
@@ -28,29 +29,47 @@ public:
private:
static QScopedPointer<SaveRunTime> self;
QString path; //日志文件路径
QString name; //日志文件名称
//日志文件路径
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);
signals:
public Q_SLOTS:
//启动服务
void start();
//停止服务
void stop();
public slots:
void start(); //启动服务
void stop(); //停止服务
void initLog(); //初始化日志文件
void appendLog(); //追加一条记录到日志文件
void saveLog(); //保存运行时间到日志文件
//新建目录
void newPath();
//初始化日志文件
void initLog();
//追加一条记录到日志文件
void appendLog();
//保存运行时间到日志文件
void saveLog();
//设置文件保存目录
void setPath(const QString &path);
//设置文件名称
void setName(const QString &name);
//设置保存间隔
void setSaveInterval(int saveInterval);
};