QT实现将两个时间相加的算法[hh: mm + hh: mm]的示例代码

目录
  • 【1】简介
  • 【2】标志位
  • 【3】系统时间+设定的时间【源码附上】
  • 【4】系统时间+清洗时间【附上源码】
  • 【5】总结

【1】简介

本次写作是在实际项目中需要,进行的时间算法,本人通过QT时间戳的方式,是无法实现两个时间相加的。但是又必须添加这个项目功能,于是自己写了一份时间算法,主要是时分的形式,例如: 12:59 + 9:59这种形式。
另外如果各位博主有更好的算法或者函数库提供,请在下方附上 link

【2】标志位

首先介绍实现的这两个函数:
void setTreatmentEndtime();//系统时间+我设定的时间=总的需要时间
void setRinseTimeStartAndEnd(QString Val);//将分钟转换为标准时分格式,在相加

需要设置的标志位:

//mainwindow.h
private://======================【SJY新增】
    uint8_t endtime_buttonflag;//剩余时间和结束时间切换标志位 【记得在构造函数初始化=0】
    QString Sys_time;//记录系统时间  【只要一次,所以需要设置标志位】
    QString MandatoryRinse;//记录强制冲洗时间 【只要一次需要设置标志位】

【3】系统时间+设定的时间【源码附上】

请看上图,在ui设计中往往需要显示系统时间和日期,而日期不可能禁止不动,需要实时刷新,这就不得不提出QT当中的定时器

第一步创建定时器并且开启

【1】在头文件添加日期时间头QDateTime
【2】toString的意思是将当前的日期时间转换为字符串,参数是时间格式,参考【QT手册assistant
【3】在ui界面随便设置两个标签,将获取的字符串时间设置显示即可

//刷新时间【由定时器开启】 1s跑一次
void MainWindow::refresh_time()
{
    ui->label_date->setText(QDateTime::currentDateTime().toString("yyyy/MM/dd"));
    ui->label_time->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));
}

上面的函数是由定时器开启的,具体如下:
【1】在mainwindow.h添加定时器的头文件QTime和对象 private: QTimer timer;
【2】将定时器对象通过connect函数形成信号与槽,信号发送函数timeout(); 槽接收函数refresh_time();
【3】&timer:对象地址【栈对象需要添加取址符&, 指针对象直接写名字,不需要&,本身就是地址】信号的发送者
【4】 timer.start(1000) :开启定时器,1s,也就是超过1s后会触发timeout()信号,start(参数是整形毫秒)
【5】timeout(): 信号发射函数,由定时器对象发射
【6】this:信号的接收者,this代码接收的是本类对象
【7】refresh_time(): 槽函数,由信号timeout触发,是本类对象的信心接收函数

//时间显示
    connect(&timer, SIGNAL(timeout()), this, SLOT(refresh_time()));
    timer.start(1000);//1s开启

第二步两个时间相加函数【已实现附上代码】

在多个MCU工作时,以下图片
第一个剩余时间:代表治疗某个病人,还需要多久
第二个结束时间:剩余结束时间+系统时间=医生几点可以下班【目的是为了直观显示】
系统时间已经在上面显示在ui了,对于label标签通过text()即可获取ui上的文本,系统时间获取;
剩余时间保存在一个数组,比如初始值=4:59

//治疗剩余时间和结束时间的切换  【SJY新增】
void MainWindow::setTreatmentEndtime()
{
    if(endtime_buttonflag == 0){
        bool ok;
        uint32_t mm,hh;
        QStringList m1; QStringList m2;
        QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
        //QString time1_hm = data_lib->Get_Value(279);//保存在数组里
        QString time1_hm = ui->label_timeleft->text();//获取ui上的剩余时间
        QString time2_hm=ui->label_time->text();//获取ui上的系统时间
        m1 = time1_hm.split(":");//9:59
        m2 = time2_hm.split(":");//例如:23:59
        m3 = m1.at(0);//9
        m4 = m1.at(1);//59
        m5 = m2.at(0);//23
        m6 = m2.at(1);//59
        mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
        hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
        qDebug()<<m3<<m4<<m5<<m6<<hh<<mm<<endl;
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
            if(mm == 60)//小时加1
            {
                m4 = QString("0");
                m3 = QString("0");
            }
            else//>60
            {
                    //小时加1  并且拼接出分钟数值
                if(( mm>=61) &&(mm<=69))//01-09
                {
                    m4 = QString("%1").arg(mm%60).at(0);//余数时5
                    m3 = QString("0");
                }
                else
                {
                    m4 = QString("%1").arg(mm%60).at(1);
                    m3 = QString("%1").arg(mm%60).at(0);
                }
            }
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt()+1);
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)//10-22
           {

              QString temp  = QString("%1").arg(hh%24);//19
              uint8_t  ret = temp.toInt()+1;//20  //11-23
              h2 = QString("%1").arg(ret).at(1);
               if(ret >= 20)
               {
                   h1 = QString("%1").arg(ret).at(0);
               }
               else
               {
                   h1 = QString("%1").arg(hh%24).at(0);
               }
           }
            else //<10
            {

                QString temp  = QString("%1").arg(hh%24);//=9
                uint8_t  ret = temp.toInt()+1;
                if(ret ==10)//10:00
                {
                         h1 = QString("1");
                         h2 = QString("0");
                }
                else {
                    h1 = QString("0");
                    h2 = QString("%1").arg(ret);
                }
            }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
            m4 = QString("%1").arg(mm%60).at(1);
            m3 = QString("%1").arg(mm%60).at(0);
            uint8_t rethh = mm/60;//转化为小时
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+rethh);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt()+rethh;
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+rethh;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
        }
       else  if(mm<10 )
        {
            m4 = QString("%1").arg(mm%60);
            m3 = QString("%1").arg(0);
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt());
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {
                QString temp  = QString("%1").arg(hh%24);//=10
                uint8_t  ret = temp.toInt();
                h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
           }
            else //hh<10
            {
                uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                h1 = QString("0");
                h2 = QString("%1").arg(temp);
            }
        }
        else//     10<=mm>=59
        {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));

                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //hh<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
        }
            ui->label_endtime->setText(QString("%1%2:%3%4").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
            ui->label_26->hide();
            ui->label_timeleft->hide();
            ui->label_endtime->show();
            ui->label_timeend->show();
            endtime_buttonflag =1;
    }
    else if(endtime_buttonflag ==1){
            ui->label_26->show();
            ui->label_timeleft->show();
            ui->label_endtime->hide();
            ui->label_timeend->hide();
            endtime_buttonflag =0;
    }
}

第三步实现的效果截图
系统时间

剩余时间

【1】刚开始显示的是剩余时间,默认值,可通过按钮设置
【2】在这个时间背后我添加了一个原型按钮
【3】点击原型按钮可以切换剩余时间和结束时间【方便医护人员及时及时下班】

结束时间=剩余时间+系统时间

【4】系统时间+清洗时间【附上源码】

【1】效果跟上面时一个道理,只是这里的清洗时间是分钟,范围是3-999,需要将清洗时间分钟转化为时分:hh:mm
【2】系统时间算法跟上面的一样 hh:mm
【3】想要的效果:
开始时间:hh:mm不变
结束时间=系统时间+清洗时间 hh:mm 跟随清洗时间的变化而变化
【4】清洗时间由控制MCU->发送通信给-》监控MCU->UI显示【实时变化】

第一步直接附上代码

//计算各个清洗按钮界面的开始时间和结束时间【SJY新增】
void MainWindow::setRinseTimeStartAndEnd(QString Val)
{
    if(Val == "水洗"){//3-999
            static uint8_t flag =0;
            if(flag == 0)//第一次进入
            {
                  Sys_time.clear();
                  Sys_time = ui->label_time->text();//获取系统时间
                  //qDebug()<<"Sys_time--------------------"<<Sys_time;
                  ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
                  flag =1;//一直保留这个值
            }
             //QString Water_time = QString("0:%1").arg(ui->stage1_time_1->text().split(" ").at(0));//水洗时间分钟
            QString Water_time = QString("%1").arg(data_lib->Get_Value(71));//水洗时间分钟
            uint8_t hmus,min;
            uint32_t Total_time=Water_time.toInt();
            if(Total_time >59)
            {
                    Water_time.clear();
                    hmus = Total_time/60;//小时
                    min= Total_time%60;//分
                    Water_time = QString("%1:%2").arg(hmus).arg(min);
            }
            else
            {
                     Water_time.clear();
                     Water_time = QString("0:%1").arg(Total_time);
            }
             bool ok;
             uint32_t mm,hh;
             QStringList m1; QStringList m2;
             QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
             m1 = Water_time.split(":");//9:59
             m2 = Sys_time.split(":");//例如:23:59
             m3 = m1.at(0);//9
             m4 = m1.at(1);//59
             m5 = m2.at(0);//23
             m6 = m2.at(1);//59
             mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
             hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
             qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl;
            if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
            {
                 if(mm == 60)//小时加1
                 {
                     m4 = QString("0");
                     m3 = QString("0");
                 }
                 else//>60
                 {
                         //小时加1  并且拼接出分钟数值
                     if(( mm>=61) &&(mm<=69))//01-09
                     {
                         m4 = QString("%1").arg(mm%60).at(0);//余数时5
                         m3 = QString("0");
                     }
                     else
                     {
                         m4 = QString("%1").arg(mm%60).at(1);
                         m3 = QString("%1").arg(mm%60).at(0);
                     }
                 }
                 //小时计算和求值
                 if(hh >23)//半夜三更
                 {
                     h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                     h1 = QString("0");
                 }
                 else if(hh == 23)//晚上:00.00
                 {
                     h1 = QString("%1").arg(QString("0").toInt()+1);
                     h2 = QString("0");
                 }
                 else if(hh>=10&&hh<=22)
                {
                   QString temp  = QString("%1").arg(hh%24);//19
                   uint8_t  ret = temp.toInt()+1;//20  //11-23
                   h2 = QString("%1").arg(ret).at(1);
                    if(ret >= 20)
                    {
                        h1 = QString("%1").arg(ret).at(0);
                    }
                    else
                    {
                        h1 = QString("%1").arg(hh%24).at(0);
                    }
                }
                 else //hh<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+1;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
            }
            else if(mm >= 100)//大于等于100   mm最大时59+59=118
            {
                 m4 = QString("%1").arg(mm%60).at(1);
                 m3 = QString("%1").arg(mm%60).at(0);
                 uint8_t rethh = mm/60;//转化为小时
                  //小时计算和求值
                  if(hh >23)//半夜三更
                  {
                      h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                      h1 = QString("0");
                  }
                  else if(hh == 23)//晚上:00.00
                  {
                      h1 = QString("%1").arg(QString("0").toInt()+rethh);
                      h2 = QString("0");
                  }
                  else if(hh>=10&&hh<=22)
                 {

                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt()+rethh;
                    h2 = QString("%1").arg(ret).at(1);
                     h1 = QString("%1").arg(hh%24).at(0);
                 }
                  else //<10
                  {

                      QString temp  = QString("%1").arg(hh%24);//=9
                      uint8_t  ret = temp.toInt()+rethh;
                      if(ret ==10)//10:00
                      {
                               h1 = QString("1");
                               h2 = QString("0");
                      }
                      else {
                          h1 = QString("0");
                          h2 = QString("%1").arg(ret);
                      }
                  }
            }
            else  if(mm<10 )
            {
                 m4 = QString("%1").arg(mm%60);
                 m3 = QString("%1").arg(0);
                 //小时计算和求值
                 if(hh >23)//半夜三更
                 {
                     h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                     h1 = QString("0");
                 }
                 else if(hh == 23)//晚上:00.00
                 {
                     h1 = QString("%1").arg(QString("0").toInt());
                     h2 = QString("0");
                 }
                 else if(hh>=10&&hh<=22)
                {

                   QString temp  = QString("%1").arg(hh%24);//=10
                   uint8_t  ret = temp.toInt();
                   h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
                }
                 else //<10
                 {
                     uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                     h1 = QString("0");
                     h2 = QString("%1").arg(temp);
                 }
            }
            else//     10<=mm>=59
             {
                     m4 = QString(QString("%1").arg(mm%60).at(1));
                     m3 = QString(QString("%1").arg(mm%60).at(0));
                     //小时计算和求值
                     if(hh >23)//半夜三更
                     {
                         h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                         h1 = QString("0");
                     }
                     else if(hh == 23)//晚上:00.00
                     {
                         h1 = QString("%1").arg(QString("0").toInt());
                         h2 = QString("0");
                     }
                     else if(hh>=10&&hh<=22)
                    {
                         QString temp  = QString("%1").arg(hh%24);//=10
                         uint8_t  ret = temp.toInt();
                         h2 = QString("%1").arg(ret).at(1);
                         h1 = QString("%1").arg(hh%24).at(0);
                    }
                     else //hh<10
                     {
                         uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                         h1 = QString("0");
                         h2 = QString("%1").arg(temp);
                     }
             }
             ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
             ui->label_Rinsestarttime->show();
             ui->label_Rinseendime->show();
    }
    else if(Val == "酸洗")//15-999
    {
        static uint8_t flag =0;
        if(flag == 0)//第一次进入
        {
              Sys_time.clear();
              Sys_time = ui->label_time->text();//获取系统时间
              ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
              flag =1;
        }
//        QString stage1_time_3 = QString("%1").arg(ui->stage1_time_3->text().split(" ").at(0));//酸洗前水洗
//        QString stage2_time_3 = QString("%1").arg(ui->stage2_time_3->text().split(" ").at(0));//酸洗
//        QString stage3_time_3 = QString("%1").arg(ui->stage3_time_3->text().split(" ").at(0));//酸洗浸泡
//        QString stage4_time_3 = QString("%1").arg(ui->stage4_time_3->text().split(" ").at(0));//酸洗后水洗
        QString stage1_time_3 = QString("%1").arg(data_lib->Get_Value(72).split(" ").at(0));//酸洗前水洗15
        QString stage2_time_3 = QString("%1").arg(data_lib->Get_Value(73).split(" ").at(0));//酸洗20
        QString stage3_time_3 = QString("%1").arg(data_lib->Get_Value(74).split(" ").at(0));//酸洗浸泡60
        QString stage4_time_3 = QString("%1").arg(data_lib->Get_Value(75).split(" ").at(0));//酸洗后水洗20
        uint8_t hmus,min;
        QString stage_time;
        uint32_t  Total_time = stage1_time_3.toInt()+stage2_time_3.toInt()+stage3_time_3.toInt()+stage4_time_3.toInt();
        if(Total_time >59)
        {
                hmus = Total_time/60;//小时
                min= Total_time%60;//分
                stage_time = QString("%1:%2").arg(hmus).arg(min);
        }
        else
        {
                 stage_time = QString("0:%1").arg(Total_time);
        }
        bool ok;
        uint32_t mm,hh;
        QStringList m1; QStringList m2;
        QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
        m1 = stage_time.split(":");//9:59
        m2 = Sys_time.split(":");//例如:23:59
        m3 = m1.at(0);//9
        m4 = m1.at(1);//59
        m5 = m2.at(0);//23
        m6 = m2.at(1);//59
        mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
        hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
            if(mm == 60)//小时加1
            {
                m4 = QString("0");
                m3 = QString("0");
            }
            else//>60
            {
                    //小时加1  并且拼接出分钟数值
                if(( mm>=61) &&(mm<=69))//01-09
                {
                    m4 = QString("%1").arg(mm%60).at(0);//余数时5
                    m3 = QString("0");
                }
                else
                {
                    m4 = QString("%1").arg(mm%60).at(1);
                    m3 = QString("%1").arg(mm%60).at(0);
                }

            }
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt()+1);
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

                QString temp  = QString("%1").arg(hh%24);//19
                uint8_t  ret = temp.toInt()+1;//20  //11-23
                h2 = QString("%1").arg(ret).at(1);
                 if(ret >= 20)
                 {
                     h1 = QString("%1").arg(ret).at(0);
                 }
                 else
                 {
                     h1 = QString("%1").arg(hh%24).at(0);
                 }
           }
            else //<10
            {

                QString temp  = QString("%1").arg(hh%24);//=9
                uint8_t  ret = temp.toInt()+1;
                if(ret ==10)//10:00
                {
                         h1 = QString("1");
                         h2 = QString("0");
                }
                else {
                    h1 = QString("0");
                    h2 = QString("%1").arg(ret);
                }
            }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
            m4 = QString("%1").arg(mm%60).at(1);
            m3 = QString("%1").arg(mm%60).at(0);
            uint8_t rethh = mm/60;//转化为小时
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+rethh);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt()+rethh;
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+rethh;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
        }
       else  if(mm<10 )
        {
            m4 = QString("%1").arg(mm%60);
            m3 = QString("%1").arg(0);
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt());
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

              QString temp  = QString("%1").arg(hh%24);//=10
              uint8_t  ret = temp.toInt();
              h2 = QString("%1").arg(ret).at(1);
               h1 = QString("%1").arg(hh%24).at(0);
           }
            else //<10
            {
                uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                h1 = QString("0");
                h2 = QString("%1").arg(temp);
            }
        }
        else//     10<=mm>=59
        {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));
                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
        }
            ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
            ui->label_Rinsestarttime->show();
            ui->label_Rinseendime->show();
    }
    else if(Val == "过氧乙酸清洗")
    {
        static uint8_t flag =0;
        if(flag == 0)//第一次进入
        {
             Sys_time.clear();
              Sys_time = ui->label_time->text();//获取系统时间
              ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
              flag =1;
        }
//        QString stage1_time_2 = QString("%1").arg(ui->stage1_time_1->text().split(" ").at(0));//清洗前水洗
//        QString stage2_time_2 = QString("%1").arg(ui->stage2_time_2->text().split(" ").at(0));//过氧乙酸清洗
//        QString stage3_time_2 = QString("%1").arg(ui->stage3_time_2->text().split(" ").at(0));//过氧乙酸浸泡
//        QString stage4_time_2 = QString("%1").arg(ui->stage4_time_2->text().split(" ").at(0));//清洗后水洗
        QString stage1_time_2 = QString("%1").arg(data_lib->Get_Value(92).split(" ").at(0));//清洗前水洗
        QString stage2_time_2 = QString("%1").arg(data_lib->Get_Value(93).split(" ").at(0));//过氧乙酸清洗
        QString stage3_time_2 = QString("%1").arg(data_lib->Get_Value(94).split(" ").at(0));//过氧乙酸浸泡
        QString stage4_time_2 = QString("%1").arg(data_lib->Get_Value(95).split(" ").at(0));//清洗后水洗
        uint8_t hmus,min;
        QString stage_time;
        uint32_t  Total_time = stage1_time_2.toInt()+stage2_time_2.toInt()+stage3_time_2.toInt()+stage4_time_2.toInt();
        if(Total_time >59)
        {
                hmus = Total_time/60;//小时
                min= Total_time%60;//分
                stage_time = QString("%1:%2").arg(hmus).arg(min);
        }
        else
        {
                 stage_time = QString("0:%1").arg(Total_time);
        }
        bool ok;
        uint32_t mm,hh;
        QStringList m1; QStringList m2;
        QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
        m1 = stage_time.split(":");//9:59
        m2 = Sys_time.split(":");//例如:23:59
        m3 = m1.at(0);//9
        m4 = m1.at(1);//59
        m5 = m2.at(0);//23
        m6 = m2.at(1);//59
        mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
        hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
        qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl;
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
            if(mm == 60)//小时加1
            {
                m4 = QString("0");
                m3 = QString("0");
            }
            else//>60
            {
                    //小时加1  并且拼接出分钟数值
                if(( mm>=61) &&(mm<=69))//01-09
                {
                    m4 = QString("%1").arg(mm%60).at(0);//余数时5
                    m3 = QString("0");
                }
                else
                {
                    m4 = QString("%1").arg(mm%60).at(1);
                    m3 = QString("%1").arg(mm%60).at(0);
                }
            }
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt()+1);
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

                QString temp  = QString("%1").arg(hh%24);//19
                uint8_t  ret = temp.toInt()+1;//20  //11-23
                h2 = QString("%1").arg(ret).at(1);
                 if(ret >= 20)
                 {
                     h1 = QString("%1").arg(ret).at(0);
                 }
                 else
                 {
                     h1 = QString("%1").arg(hh%24).at(0);
                 }
           }
            else //<10
            {

                QString temp  = QString("%1").arg(hh%24);//=9
                uint8_t  ret = temp.toInt()+1;
                if(ret ==10)//10:00
                {
                         h1 = QString("1");
                         h2 = QString("0");
                }
                else {
                    h1 = QString("0");
                    h2 = QString("%1").arg(ret);
                }
            }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
            m4 = QString("%1").arg(mm%60).at(1);
            m3 = QString("%1").arg(mm%60).at(0);
            uint8_t rethh = mm/60;//转化为小时
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+rethh);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt()+rethh;
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+rethh;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
        }
       else  if(mm<10 )
        {
            m4 = QString("%1").arg(mm%60);
            m3 = QString("%1").arg(0);
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt());
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

              QString temp  = QString("%1").arg(hh%24);//=10
              uint8_t  ret = temp.toInt();
              h2 = QString("%1").arg(ret).at(1);
               h1 = QString("%1").arg(hh%24).at(0);
           }
            else //<10
            {
                uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                h1 = QString("0");
                h2 = QString("%1").arg(temp);
            }
        }
        else//     10<=mm>=59
        {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));
                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
        }
            ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
            ui->label_Rinsestarttime->show();
            ui->label_Rinseendime->show();
    }
    else if(Val == "消毒")
    {

        static uint8_t flag =0;
        if(flag == 0)//第一次进入
        {
              Sys_time.clear();
              Sys_time = ui->label_time->text();//获取系统时间
              ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
              flag =1;
        }
//        QString stage1_time_4 = QString("%1").arg(ui->stage1_time_4->text().split(" ").at(0));//消毒前水洗
//        QString stage2_time_4 = QString("%1").arg(ui->stage2_time_4->text().split(" ").at(0));//消毒
//        QString stage3_time_4 = QString("%1").arg(ui->stage3_time_4->text().split(" ").at(0));//消毒静置
//        QString stage4_time_4 = QString("%1").arg(ui->stage4_time_4->text().split(" ").at(0));//消毒后水洗
        QString stage1_time_4 = QString("%1").arg(data_lib->Get_Value(77).split(" ").at(0));//消毒前水洗
        QString stage2_time_4 = QString("%1").arg(data_lib->Get_Value(78).split(" ").at(0));//消毒
        QString stage3_time_4 = QString("%1").arg(data_lib->Get_Value(79).split(" ").at(0));//消毒静置
        QString stage4_time_4 = QString("%1").arg(data_lib->Get_Value(80).split(" ").at(0));//消毒后水洗
        uint8_t hmus,min;
        QString stage_time;
        uint32_t  Total_time = stage1_time_4.toInt()+stage2_time_4.toInt()+stage3_time_4.toInt()+stage4_time_4.toInt();
        if(Total_time >59)
        {
                hmus = Total_time/60;//小时
                min= Total_time%60;//分
                stage_time = QString("%1:%2").arg(hmus).arg(min);
        }
        else
        {
                 stage_time = QString("0:%1").arg(Total_time);
        }
        bool ok;
        uint32_t mm,hh;
        QStringList m1; QStringList m2;
        QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
        m1 = stage_time.split(":");//9:59
        m2 = Sys_time.split(":");//例如:23:59
        m3 = m1.at(0);//9
        m4 = m1.at(1);//59
        m5 = m2.at(0);//23
        m6 = m2.at(1);//59
        mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
        hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
        qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl;
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
            if(mm == 60)//小时加1
            {
                m4 = QString("0");
                m3 = QString("0");
            }
            else//>60
            {
                    //小时加1  并且拼接出分钟数值
                if(( mm>=61) &&(mm<=69))//01-09
                {
                    m4 = QString("%1").arg(mm%60).at(0);//余数时5
                    m3 = QString("0");
                }
                else
                {
                    m4 = QString("%1").arg(mm%60).at(1);
                    m3 = QString("%1").arg(mm%60).at(0);
                }
            }
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt()+1);
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

                QString temp  = QString("%1").arg(hh%24);//19
                uint8_t  ret = temp.toInt()+1;//20  //11-23
                h2 = QString("%1").arg(ret).at(1);
                 if(ret >= 20)
                 {
                     h1 = QString("%1").arg(ret).at(0);
                 }
                 else
                 {
                     h1 = QString("%1").arg(hh%24).at(0);
                 }
           }
            else //<10
            {

                QString temp  = QString("%1").arg(hh%24);//=9
                uint8_t  ret = temp.toInt()+1;
                if(ret ==10)//10:00
                {
                         h1 = QString("1");
                         h2 = QString("0");
                }
                else {
                    h1 = QString("0");
                    h2 = QString("%1").arg(ret);
                }
            }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
            m4 = QString("%1").arg(mm%60).at(1);
            m3 = QString("%1").arg(mm%60).at(0);
            uint8_t rethh = mm/60;//转化为小时
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+rethh);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt()+rethh;
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+rethh;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
        }
       else  if(mm<10 )
        {
            m4 = QString("%1").arg(mm%60);
            m3 = QString("%1").arg(0);
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt());
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

              QString temp  = QString("%1").arg(hh%24);//=10
              uint8_t  ret = temp.toInt();
              h2 = QString("%1").arg(ret).at(1);
               h1 = QString("%1").arg(hh%24).at(0);
           }
            else //<10
            {
                uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                h1 = QString("0");
                h2 = QString("%1").arg(temp);
            }
        }
        else//     10<=mm>=59
        {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));
                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
        }
            ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
            ui->label_Rinsestarttime->show();
            ui->label_Rinseendime->show();
    }
    else if(Val == "热水冲洗")
    {
        static uint8_t flag =0;
        if(flag == 0)//第一次进入
        {
              Sys_time.clear();
              Sys_time = ui->label_time->text();//获取系统时间
              ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
              flag =1;
        }
//        QString stage1_time_5 = QString("%1").arg(ui->stage1_time_5->text().split(" ").at(0));//热冲洗前水洗
//        QString stage2_time_5 = QString("%1").arg(5);//加热
//        QString stage3_time_5 = QString("%1").arg(ui->stage3_time_5->text().split(" ").at(0));//热水冲洗
//        QString stage4_time_5 = QString("%1").arg(5);//冷却
//        QString stage5_time_5 = QString("%1").arg(ui->stage5_time_5->text().split(" ").at(0));//热冲洗后水洗
        QString stage1_time_5 = QString("%1").arg(data_lib->Get_Value(83).split(" ").at(0));//热冲洗前水洗
        QString stage2_time_5 = QString("%1").arg(5);//加热
        QString stage3_time_5 = QString("%1").arg(data_lib->Get_Value(84).split(" ").at(0));//热水冲洗
        QString stage4_time_5 = QString("%1").arg(5);//冷却
        QString stage5_time_5 = QString("%1").arg(data_lib->Get_Value(85).split(" ").at(0));//热冲洗后水洗
        uint8_t hmus,min;
        QString stage_time;
        uint32_t  Total_time = stage1_time_5.toInt()+stage2_time_5.toInt()+stage3_time_5.toInt()+stage5_time_5.toInt()+stage4_time_5.toInt();
        if(Total_time >59)
        {
                hmus = Total_time/60;//小时
                min= Total_time%60;//分
                stage_time = QString("%1:%2").arg(hmus).arg(min);
        }
        else
        {
                 stage_time = QString("0:%1").arg(Total_time);
        }
        bool ok;
        uint32_t mm,hh;
        QStringList m1; QStringList m2;
        QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
        m1 = stage_time.split(":");//9:59
        m2 = Sys_time.split(":");//例如:23:59
        m3 = m1.at(0);//9
        m4 = m1.at(1);//59
        m5 = m2.at(0);//23
        m6 = m2.at(1);//59
        mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
        hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
        qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl;
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
            if(mm == 60)//小时加1
            {
                m4 = QString("0");
                m3 = QString("0");
            }
            else//>60
            {
                    //小时加1  并且拼接出分钟数值
                if(( mm>=61) &&(mm<=69))//01-09
                {
                    m4 = QString("%1").arg(mm%60).at(0);//余数时5
                    m3 = QString("0");
                }
                else
                {
                    m4 = QString("%1").arg(mm%60).at(1);
                    m3 = QString("%1").arg(mm%60).at(0);
                }
            }
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt()+1);
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

                QString temp  = QString("%1").arg(hh%24);//19
                uint8_t  ret = temp.toInt()+1;//20  //11-23
                h2 = QString("%1").arg(ret).at(1);
                 if(ret >= 20)
                 {
                     h1 = QString("%1").arg(ret).at(0);
                 }
                 else
                 {
                     h1 = QString("%1").arg(hh%24).at(0);
                 }
           }
            else //<10
            {

                QString temp  = QString("%1").arg(hh%24);//=9
                uint8_t  ret = temp.toInt()+1;
                if(ret ==10)//10:00
                {
                         h1 = QString("1");
                         h2 = QString("0");
                }
                else {
                    h1 = QString("0");
                    h2 = QString("%1").arg(ret);
                }
            }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
            m4 = QString("%1").arg(mm%60).at(1);
            m3 = QString("%1").arg(mm%60).at(0);
            uint8_t rethh = mm/60;//转化为小时
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+rethh);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt()+rethh;
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+rethh;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
        }
       else  if(mm<10 )
        {
            m4 = QString("%1").arg(mm%60);
            m3 = QString("%1").arg(0);
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt());
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

              QString temp  = QString("%1").arg(hh%24);//=10
              uint8_t  ret = temp.toInt();
              h2 = QString("%1").arg(ret).at(1);
               h1 = QString("%1").arg(hh%24).at(0);
           }
            else //<10
            {
                uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                h1 = QString("0");
                h2 = QString("%1").arg(temp);
            }
        }
        else//     10<=mm>=59
        {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));
                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
        }
            ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
            ui->label_Rinsestarttime->show();
            ui->label_Rinseendime->show();
    }
    else if(Val == "热水柠檬酸洗")
    {
        static uint8_t flag =0;
        if(flag == 0)//第一次进入
        {
              Sys_time.clear();
              Sys_time = ui->label_time->text();//获取系统时间
              ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
              flag =1;
        }
//        QString stage1_time_6 = QString("%1").arg(ui->stage1_time_6->text().split(" ").at(0));//清洗前水洗
//        QString stage2_time_6 = QString("%1").arg(5);//加热
//        QString stage3_time_6 = QString("%1").arg(ui->stage3_time_6->text().split(" ").at(0));//热水柠檬酸洗
//        QString stage4_time_6 = QString("%1").arg(5);//冷却
//        QString stage5_time_6 = QString("%1").arg(ui->stage5_time_6->text().split(" ").at(0));//热冲洗后水洗
        QString stage1_time_6 = QString("%1").arg(data_lib->Get_Value(87).split(" ").at(0));//清洗前水洗
        QString stage2_time_6 = QString("%1").arg(5);//加热
        QString stage3_time_6 = QString("%1").arg(data_lib->Get_Value(88).split(" ").at(0));//热水柠檬酸洗
        QString stage4_time_6 = QString("%1").arg(5);//冷却
        QString stage5_time_6 = QString("%1").arg(data_lib->Get_Value(89).split(" ").at(0));//热冲洗后水洗
        uint8_t hmus,min;
        QString stage_time;
        uint32_t  Total_time = stage1_time_6.toInt()+stage2_time_6.toInt()+stage3_time_6.toInt()+stage5_time_6.toInt()+stage4_time_6.toInt();
        if(Total_time >59)
        {
                hmus = Total_time/60;//小时
                min= Total_time%60;//分
                stage_time = QString("%1:%2").arg(hmus).arg(min);
        }
        else
        {
                 stage_time = QString("0:%1").arg(Total_time);
        }
        bool ok;
        uint32_t mm,hh;
        QStringList m1; QStringList m2;
        QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
        m1 = stage_time.split(":");//9:59
        m2 = Sys_time.split(":");//例如:23:59
        m3 = m1.at(0);//9
        m4 = m1.at(1);//59
        m5 = m2.at(0);//23
        m6 = m2.at(1);//59
        mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
        hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
        qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl;
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
            if(mm == 60)//小时加1
            {
                m4 = QString("0");
                m3 = QString("0");
            }
            else//>60
            {
                    //小时加1  并且拼接出分钟数值
                if(( mm>=61) &&(mm<=69))//01-09
                {
                    m4 = QString("%1").arg(mm%60).at(0);//余数时5
                    m3 = QString("0");
                }
                else
                {
                    m4 = QString("%1").arg(mm%60).at(1);
                    m3 = QString("%1").arg(mm%60).at(0);
                }
            }
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt()+1);
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

                QString temp  = QString("%1").arg(hh%24);//19
                uint8_t  ret = temp.toInt()+1;//20  //11-23
                h2 = QString("%1").arg(ret).at(1);
                 if(ret >= 20)
                 {
                     h1 = QString("%1").arg(ret).at(0);
                 }
                 else
                 {
                     h1 = QString("%1").arg(hh%24).at(0);
                 }
           }
            else //<10
            {

                QString temp  = QString("%1").arg(hh%24);//=9
                uint8_t  ret = temp.toInt()+1;
                if(ret ==10)//10:00
                {
                         h1 = QString("1");
                         h2 = QString("0");
                }
                else {
                    h1 = QString("0");
                    h2 = QString("%1").arg(ret);
                }
            }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
            m4 = QString("%1").arg(mm%60).at(1);
            m3 = QString("%1").arg(mm%60).at(0);
            uint8_t rethh = mm/60;//转化为小时
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+rethh);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt()+rethh;
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {

                 QString temp  = QString("%1").arg(hh%24);//=9
                 uint8_t  ret = temp.toInt()+rethh;
                 if(ret ==10)//10:00
                 {
                          h1 = QString("1");
                          h2 = QString("0");
                 }
                 else {
                     h1 = QString("0");
                     h2 = QString("%1").arg(ret);
                 }
             }
        }
       else  if(mm<10 )
        {
            m4 = QString("%1").arg(mm%60);
            m3 = QString("%1").arg(0);
            //小时计算和求值
            if(hh >23)//半夜三更
            {
                h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                h1 = QString("0");
            }
            else if(hh == 23)//晚上:00.00
            {
                h1 = QString("%1").arg(QString("0").toInt());
                h2 = QString("0");
            }
            else if(hh>=10&&hh<=22)
           {

              QString temp  = QString("%1").arg(hh%24);//=10
              uint8_t  ret = temp.toInt();
              h2 = QString("%1").arg(ret).at(1);
               h1 = QString("%1").arg(hh%24).at(0);
           }
            else //<10
            {
                uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                h1 = QString("0");
                h2 = QString("%1").arg(temp);
            }
        }
        else//     10<=mm>=59
        {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));
                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
        }
            ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
            ui->label_Rinsestarttime->show();
            ui->label_Rinseendime->show();
    }
    else if(Val == "强制冲洗")
    {
        static uint8_t flag =0;
        if(flag == 0)//第一次进入
        {
              Sys_time.clear();
              MandatoryRinse.clear();
              Sys_time = ui->label_time->text();//获取系统时间
              ui->label_Rinsestarttime->setText(tr(QString("开始时间 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data()));
              MandatoryRinse = QString("0:%1").arg(ui->label_rinseleft->text().split(" ").at(0));//强制冲洗分钟
              flag =1;//一直保留这个值
        }
        //QString Water_time = QString("%1").arg(data_lib->Get_Value(71));//水洗时间分钟
        uint32_t hmus,min;
        uint32_t Total_time=MandatoryRinse.toInt();
        if(Total_time >59)
        {
                MandatoryRinse.clear();
                hmus = Total_time/60;//小时
                min= Total_time%60;//分
                MandatoryRinse = QString("%1:%2").arg(hmus).arg(min);
        }
        else
        {
                 MandatoryRinse.clear();
                 MandatoryRinse = QString("0:%1").arg(Total_time);
        }
         bool ok;
         uint32_t mm,hh;
         QStringList m1; QStringList m2;
         QString m3; QString m4;  QString m5; QString m6;  QString h2; QString h1;
         m1 = MandatoryRinse.split(":");//9:59
         m2 = Sys_time.split(":");//例如:23:59
         m3 = m1.at(0);//9
         m4 = m1.at(1);//59
         m5 = m2.at(0);//23
         m6 = m2.at(1);//59
         mm =m4.toInt(&ok,10)+m6.toInt(&ok,10);//分钟
         hh =m3.toInt(&ok,10)+m5.toInt(&ok,10);//小时
         qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl;
        if((mm >=60)&&(mm <100))//分钟不能大于60   大于增加一个小时
        {
             if(mm == 60)//小时加1
             {
                 m4 = QString("0");
                 m3 = QString("0");
             }
             else//>60
             {
                     //小时加1  并且拼接出分钟数值
                 if(( mm>=61) &&(mm<=69))//01-09
                 {
                     m4 = QString("%1").arg(mm%60).at(0);//余数时5
                     m3 = QString("0");
                 }
                 else
                 {
                     m4 = QString("%1").arg(mm%60).at(1);
                     m3 = QString("%1").arg(mm%60).at(0);
                 }
             }
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+1);
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt()+1);
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {
               QString temp  = QString("%1").arg(hh%24);//19
               uint8_t  ret = temp.toInt()+1;//20  //11-23
               h2 = QString("%1").arg(ret).at(1);
                if(ret >= 20)
                {
                    h1 = QString("%1").arg(ret).at(0);
                }
                else
                {
                    h1 = QString("%1").arg(hh%24).at(0);
                }
            }
             else //<10
         {

             QString temp  = QString("%1").arg(hh%24);//=9
             uint8_t  ret = temp.toInt()+1;
             if(ret ==10)//10:00
             {
                      h1 = QString("1");
                      h2 = QString("0");
             }
             else {
                 h1 = QString("0");
                 h2 = QString("%1").arg(ret);
             }
         }
        }
        else if(mm >= 100)//大于等于100   mm最大时59+59=118
        {
             m4 = QString("%1").arg(mm%60).at(1);
             m3 = QString("%1").arg(mm%60).at(0);
             uint8_t rethh = mm/60;//转化为小时
              //小时计算和求值
              if(hh >23)//半夜三更
              {
                  h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt()+rethh);
                  h1 = QString("0");
              }
              else if(hh == 23)//晚上:00.00
              {
                  h1 = QString("%1").arg(QString("0").toInt()+rethh);
                  h2 = QString("0");
              }
              else if(hh>=10&&hh<=22)
             {

                QString temp  = QString("%1").arg(hh%24);//=10
                uint8_t  ret = temp.toInt()+rethh;
                h2 = QString("%1").arg(ret).at(1);
                 h1 = QString("%1").arg(hh%24).at(0);
             }
              else //<10
              {

                  QString temp  = QString("%1").arg(hh%24);//=9
                  uint8_t  ret = temp.toInt()+rethh;
                  if(ret ==10)//10:00
                  {
                           h1 = QString("1");
                           h2 = QString("0");
                  }
                  else {
                      h1 = QString("0");
                      h2 = QString("%1").arg(ret);
                  }
              }
        }
        else  if(mm<10 )
        {
             m4 = QString("%1").arg(mm%60);
             m3 = QString("%1").arg(0);
             //小时计算和求值
             if(hh >23)//半夜三更
             {
                 h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                 h1 = QString("0");
             }
             else if(hh == 23)//晚上:00.00
             {
                 h1 = QString("%1").arg(QString("0").toInt());
                 h2 = QString("0");
             }
             else if(hh>=10&&hh<=22)
            {

               QString temp  = QString("%1").arg(hh%24);//=10
               uint8_t  ret = temp.toInt();
               h2 = QString("%1").arg(ret).at(1);
                h1 = QString("%1").arg(hh%24).at(0);
            }
             else //<10
             {
                 uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                 h1 = QString("0");
                 h2 = QString("%1").arg(temp);
             }
        }
        else//     10<=mm>=59
         {
                m4 = QString(QString("%1").arg(mm%60).at(1));
                m3 = QString(QString("%1").arg(mm%60).at(0));
                //小时计算和求值
                if(hh >23)//半夜三更
                {
                    h2 = QString("%1").arg(QString("%1").arg(hh%24).toInt());
                    h1 = QString("0");
                }
                else if(hh == 23)//晚上:00.00
                {
                    h1 = QString("%1").arg(QString("0").toInt());
                    h2 = QString("0");
                }
                else if(hh>=10&&hh<=22)
               {
                    QString temp  = QString("%1").arg(hh%24);//=10
                    uint8_t  ret = temp.toInt();
                    h2 = QString("%1").arg(ret).at(1);
                    h1 = QString("%1").arg(hh%24).at(0);
               }
                else //<10
                {
                    uint8_t temp  = QString("%1").arg(hh%24).toInt();//=9
                    h1 = QString("0");
                    h2 = QString("%1").arg(temp);
                }
         }
         ui->label_Rinseendime->setText(QString("%1%2%3:%4%5").arg("结束时间 ").arg(h1).arg(h2).arg(m3).arg(m4));//总治疗剩余时间
         ui->label_Rinsestarttime->show();
         ui->label_Rinseendime->show();
    }
    else
    {
        //扩展
    }
}

实现的效果

【5】总结

代码实现没问题,已经调试和计算过,上面结束时间已经修改过,但是我只教方法,也作为一个记录,以后遇上直接调用即可,大家平时写代码也要养成这种习惯,我不信你什么都能记住,封装好自己的库工作压力减轻一半。

到此这篇关于QT实现将两个时间相加的算法[hh: mm + hh: mm]的示例代码的文章就介绍到这了,更多相关QT时间相加内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Qt5 实现主窗口状态栏显示时间

    使用Qt Creator创建默认的窗体程序后,主窗口QMainWindow有statusBar状态栏,在此状态栏实时显示时间可以使用下面方法实现: mainwindow.h文件内容: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <mydialog.h> #include <QLabel> namespace Ui { class MainWindow; } class

  • python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例

    PyQt5日期时间控件QDateTimeEdit介绍 QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过setDisplayFormat()函数来设置显示的日期时间格式 QDateTimeEdit类中常用方法 方法 描述 setDisplayFormat 设置日期的时间格式 yyyy:代表年份,用4为数表示 MM:代表月份,取值范围01-12 dd:代表日,取值范围01-31 HH:代表小时,取值范围0

  • Python中利用pyqt5制作指针钟表显示实时时间(指针时钟)

    文末附完整源代码实现过程... 想实现这样一个功能,然后pyqt5中又没有现成的组件可以使用,于是就想着只能通过绘图的方式来实现.说到绘图的话,turtle框架无疑是最常见的选择,但其实通过pyqt5的QPainter组件也是可以实现的.而且最后呈现出来的效果还是挺漂亮的. 实现思路:通过使用pyqt5的QPainter组件来绘制好时钟的图表,最后通过定时器不断的改变当前当前时间在图表上面的显示位置.这样最终就实现了一个指针时钟在不断的走动的过程. 和前面的UI应用一样,我们用到的UI相关的组件

  • python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例

    QTimer控件介绍 如果在应用程序中周期性地进行某项操作,比如周期性的检测主机的cpu值,则需要用到QTimer定时器,QTimer类提供了重复和单次的定时器,要使用定时器,需要先创建一个QTimer实例,将其Timeout信号连接到槽函数,并调用start(),然后,定时器,会以恒定的间隔发出timeout信号 当窗口的控件收到Timeout信号后,他就会停止这个定时器,这是在图形用户界面中实现复杂工作的一个典型用法,随着技术的进步,多线程在越来越多的平台上被使用,QTimer对象会被替代掉

  • pyqt5 使用label控件实时显示时间的实例

    如下所示: import sys from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class showTime(QDialog): def __init__(self): super(showTime, self).__init__() self.resize(500, 400) self.se

  • QT实现将两个时间相加的算法[hh: mm + hh: mm]的示例代码

    目录 [1]简介 [2]标志位 [3]系统时间+设定的时间[源码附上] [4]系统时间+清洗时间[附上源码] [5]总结 [1]简介 本次写作是在实际项目中需要,进行的时间算法,本人通过QT时间戳的方式,是无法实现两个时间相加的.但是又必须添加这个项目功能,于是自己写了一份时间算法,主要是时分的形式,例如: 12:59 + 9:59这种形式.另外如果各位博主有更好的算法或者函数库提供,请在下方附上 link [2]标志位 首先介绍实现的这两个函数:void setTreatmentEndtime

  • C++时间戳转换成日期时间的步骤和示例代码

    因工作需要,经常跟时间戳打交道,但是因为它仅仅是一个数字,我们很难直接看出它有什么意义,或两个时间戳之间究竟差了多长的间隔.于是从MSDN for Visual Studio6上找到了时间戳转换成日期时间的算法.本文除介绍这一算法外,还提供一个示例代码. 1.将时间戳转换成一串32比特的二进制数.有些数字转换之后不够32位,则在前面补充0.这可通过windows自带的计算器完成.比如481522543转换成 0001 1100 1011 0011 0111 0011 0110 1111 2.根据

  • JS计算两个时间相差分钟数的方法示例

    本文实例讲述了JS计算两个时间相差分钟数的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <he

  • php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码

    php计算两个时间相差的天数.小时数.分钟数.秒数 PHP中计算两个时间相差的天数.小时数.分钟数.秒数不如其它语言方便,但搞清了PHP中时间的表示方法后也很简单.本文章向大家讲解php如何计算时间相差.需要的码农可以参考一下. 先看下面这个网上给的例子: //$startdate是开始时间,$enddate是结束时间 <?php $startdate="2011-3-15 11:50:00"; $enddate="2012-12-12 12:12:12";

  • js实现两个值相加alert出来精确到指定位

    如:Number(4.2)+Number(9.2) 这两个值相加alert出来等于13.399999999999998,为什么? 如:Number(2.2)+Number(9.7) alert出来等于11.899999999999998 但是 像这样的 Number(2.3)+Number(9.9) alert出来等于12.2 . 这个值是我想要的. 为什么有的数值加起来会出现那么多的小数位呢,有的加起来又没有呢? 复制代码 代码如下: <html> <head></head

  • go语言计算两个时间的时间差方法

    本文实例讲述了go语言计算两个时间的时间差方法.分享给大家供大家参考.具体分析如下: go语言计算两个时间的时间差,代码很简单,返回1天前.1周前还是1月前的时间 package main import ( "fmt" "time" ) func main() { //Add方法和Sub方法是相反的,获取t0和t1的时间距离d是使用Sub //将t0加d获取t1就是使用Add方法 k := time.Now() //一天之前 d, _ := time.ParseDu

  • php实现两个数组相加的方法

    本文实例讲述了php实现两个数组相加的方法.分享给大家供大家参考.具体如下: 实例1: <?php $arr1 = array("a"=>"朝阳区","b"=>"海淀区"); $arr2 = array("h"=>"西城区","a"=>"东城区","b"=>"丰台区");

  • Python实现计算两个时间之间相差天数的方法

    本文实例讲述了Python实现计算两个时间之间相差天数的方法.分享给大家供大家参考,具体如下: #-*- encoding:UTF-8 -*- from datetime import date import time nowtime = date.today() def convertstringtodate(stringtime): "把字符串类型转换为date类型" if stringtime[0:2] == "20": year=stringtime[0:4

  • js计算两个时间之间天数差的实例代码

    复制代码 代码如下: //判断是否为闰年function isLeapYear(year){if(year % 4 == 0 && ((year % 100 != 0) || (year % 400 == 0))){     return true;}return false;}//判断前后两个日期function validatePeriod(fyear,fmonth,fday,byear,bmonth,bday){if(fyear < byear){return true;}el

  • java计算两个时间相差天数的方法汇总

    问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是分闰年和平年的,各自的天数不同 /** * date2比date1多的天数 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal

随机推荐