标签:main ret 做了 精确 qstring list nbsp pre ring
最近学习IEC-102协议,源码用Qt进行开发。本人负责将其移至到南瑞D5000里面,领导提出,如果当前接收到15分钟之前的数据,需要将其抛弃掉,这就需要计算时间差。做了如下实验,为防忘却,特将其记录下。
包含头文件
#include <QCoreApplication>
#include<QString>
#include<QStringList>
#include<QDateTime>
文件名记录了该文件应当生成的时间,首先就需要提取该时间。
int main(int argc, char *argv[])
{
QString FileNameStrU = "浙江.蛟禾光伏站_4Cwind_202004201600.rb";
QStringList FileNameTmp = FileNameStrU.split("_");
QString FileTime = FileNameTmp.at(2).left(12);
// QString 字符串转成时间格式
QDateTime time = QDateTime::FileTime.fromString("yyyMMddhhmm");
// 获取当前时间,可以精确到秒。
QDateTime current _time = QDateTime::currentDateTime();
//计算时间差,先将两时间值 转成uint型,再进行减操作
uint start_time = time.toTime_t();
uint end_time = current_tome.toTime_t();
//计算时间差,结果为秒:
int t_Ret = end_time - start_time;
if(t_Ret > 15 * 60)
printf("%s","file delay");
以上代码输出结果是 : file delay。
标签:main ret 做了 精确 qstring list nbsp pre ring
原文地址:https://www.cnblogs.com/pldy/p/12742155.html