Qt里面计算时间差


最近学习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。

    


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM