QT實(shí)現(xiàn)將兩個(gè)時(shí)間相加的算法[hh:?mm?+?hh:?mm]的示例代碼
【1】簡(jiǎn)介
本次寫作是在實(shí)際項(xiàng)目中需要,進(jìn)行的時(shí)間算法,本人通過QT時(shí)間戳的方式,是無(wú)法實(shí)現(xiàn)兩個(gè)時(shí)間相加的。但是又必須添加這個(gè)項(xiàng)目功能,于是自己寫了一份時(shí)間算法,主要是時(shí)分的形式,例如: 12:59 + 9:59這種形式。
另外如果各位博主有更好的算法或者函數(shù)庫(kù)提供,請(qǐng)?jiān)谙路礁缴?link
【2】標(biāo)志位
首先介紹實(shí)現(xiàn)的這兩個(gè)函數(shù):
void setTreatmentEndtime();
//系統(tǒng)時(shí)間+我設(shè)定的時(shí)間=總的需要時(shí)間void setRinseTimeStartAndEnd(QString Val);
//將分鐘轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)分格式,在相加
需要設(shè)置的標(biāo)志位:
//mainwindow.h private://======================【SJY新增】 uint8_t endtime_buttonflag;//剩余時(shí)間和結(jié)束時(shí)間切換標(biāo)志位 【記得在構(gòu)造函數(shù)初始化=0】 QString Sys_time;//記錄系統(tǒng)時(shí)間 【只要一次,所以需要設(shè)置標(biāo)志位】 QString MandatoryRinse;//記錄強(qiáng)制沖洗時(shí)間 【只要一次需要設(shè)置標(biāo)志位】
【3】系統(tǒng)時(shí)間+設(shè)定的時(shí)間【源碼附上】
請(qǐng)看上圖,在ui設(shè)計(jì)中往往需要顯示系統(tǒng)時(shí)間和日期,而日期不可能禁止不動(dòng),需要實(shí)時(shí)刷新,這就不得不提出QT當(dāng)中的定時(shí)器
第一步創(chuàng)建定時(shí)器并且開啟
【1】在頭文件添加日期時(shí)間頭
QDateTime
【2】toString
的意思是將當(dāng)前的日期時(shí)間轉(zhuǎn)換為字符串,參數(shù)是時(shí)間格式,參考【QT手冊(cè)assistant
】
【3】在ui界面隨便設(shè)置兩個(gè)標(biāo)簽,將獲取的字符串時(shí)間設(shè)置顯示即可
//刷新時(shí)間【由定時(shí)器開啟】 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")); }
上面的函數(shù)是由定時(shí)器開啟的,具體如下:
【1】在mainwindow.h
添加定時(shí)器的頭文件QTime
和對(duì)象private: QTimer timer;
【2】將定時(shí)器對(duì)象通過connect
函數(shù)形成信號(hào)與槽,信號(hào)發(fā)送函數(shù)timeout();
槽接收函數(shù)refresh_time();
【3】&timer:對(duì)象地址【棧對(duì)象需要添加取址符&, 指針對(duì)象直接寫名字,不需要&,本身就是地址】信號(hào)的發(fā)送者
【4】 timer.start(1000) :開啟定時(shí)器,1s,也就是超過1s后會(huì)觸發(fā)timeout()信號(hào),start(參數(shù)是整形毫秒)
【5】timeout(): 信號(hào)發(fā)射函數(shù),由定時(shí)器對(duì)象發(fā)射
【6】this:信號(hào)的接收者,this代碼接收的是本類對(duì)象
【7】refresh_time(): 槽函數(shù),由信號(hào)timeout觸發(fā),是本類對(duì)象的信心接收函數(shù)
//時(shí)間顯示 connect(&timer, SIGNAL(timeout()), this, SLOT(refresh_time())); timer.start(1000);//1s開啟
第二步兩個(gè)時(shí)間相加函數(shù)【已實(shí)現(xiàn)附上代碼】
在多個(gè)MCU工作時(shí),以下圖片
第一個(gè)剩余時(shí)間:代表治療某個(gè)病人,還需要多久
第二個(gè)結(jié)束時(shí)間:剩余結(jié)束時(shí)間+系統(tǒng)時(shí)間=醫(yī)生幾點(diǎn)可以下班【目的是為了直觀顯示】
系統(tǒng)時(shí)間已經(jīng)在上面顯示在ui了,對(duì)于label標(biāo)簽通過text()即可獲取ui上的文本,系統(tǒng)時(shí)間獲??;
剩余時(shí)間保存在一個(gè)數(shù)組,比如初始值=4:59
//治療剩余時(shí)間和結(jié)束時(shí)間的切換 【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);//保存在數(shù)組里 QString time1_hm = ui->label_timeleft->text();//獲取ui上的剩余時(shí)間 QString time2_hm=ui->label_time->text();//獲取ui上的系統(tǒng)時(shí)間 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);//小時(shí) qDebug()<<m3<<m4<<m5<<m6<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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));//總治療剩余時(shí)間 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; } }
第三步實(shí)現(xiàn)的效果截圖
系統(tǒng)時(shí)間
剩余時(shí)間
【1】剛開始顯示的是剩余時(shí)間,默認(rèn)值,可通過按鈕設(shè)置
【2】在這個(gè)時(shí)間背后我添加了一個(gè)原型按鈕
【3】點(diǎn)擊原型按鈕可以切換剩余時(shí)間和結(jié)束時(shí)間【方便醫(yī)護(hù)人員及時(shí)及時(shí)下班】
結(jié)束時(shí)間=剩余時(shí)間+系統(tǒng)時(shí)間
【4】系統(tǒng)時(shí)間+清洗時(shí)間【附上源碼】
【1】效果跟上面時(shí)一個(gè)道理,只是這里的清洗時(shí)間是分鐘,范圍是3-999,需要將清洗時(shí)間分鐘轉(zhuǎn)化為時(shí)分:hh:mm
【2】系統(tǒng)時(shí)間算法跟上面的一樣 hh:mm
【3】想要的效果:
開始時(shí)間:hh:mm不變
結(jié)束時(shí)間=系統(tǒng)時(shí)間+清洗時(shí)間 hh:mm 跟隨清洗時(shí)間的變化而變化
【4】清洗時(shí)間由控制MCU->發(fā)送通信給-》監(jiān)控MCU->UI顯示【實(shí)時(shí)變化】
第一步直接附上代碼
//計(jì)算各個(gè)清洗按鈕界面的開始時(shí)間和結(jié)束時(shí)間【SJY新增】 void MainWindow::setRinseTimeStartAndEnd(QString Val) { if(Val == "水洗"){//3-999 static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 //qDebug()<<"Sys_time--------------------"<<Sys_time; ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %1:%2").arg(Sys_time.split(":").at(0)).arg(Sys_time.split(":").at(1)).toUtf8().data())); flag =1;//一直保留這個(gè)值 } //QString Water_time = QString("0:%1").arg(ui->stage1_time_1->text().split(" ").at(0));//水洗時(shí)間分鐘 QString Water_time = QString("%1").arg(data_lib->Get_Value(71));//水洗時(shí)間分鐘 uint8_t hmus,min; uint32_t Total_time=Water_time.toInt(); if(Total_time >59) { Water_time.clear(); hmus = Total_time/60;//小時(shí) 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);//小時(shí) qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else if(Val == "酸洗")//15-999 { static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %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;//小時(shí) 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);//小時(shí) if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else if(Val == "過氧乙酸清洗") { static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %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;//小時(shí) 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);//小時(shí) qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else if(Val == "消毒") { static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %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;//小時(shí) 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);//小時(shí) qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else if(Val == "熱水沖洗") { static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %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;//小時(shí) 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);//小時(shí) qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else if(Val == "熱水檸檬酸洗") { static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %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;//小時(shí) 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);//小時(shí) qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else if(Val == "強(qiáng)制沖洗") { static uint8_t flag =0; if(flag == 0)//第一次進(jìn)入 { Sys_time.clear(); MandatoryRinse.clear(); Sys_time = ui->label_time->text();//獲取系統(tǒng)時(shí)間 ui->label_Rinsestarttime->setText(tr(QString("開始時(shí)間 %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));//強(qiáng)制沖洗分鐘 flag =1;//一直保留這個(gè)值 } //QString Water_time = QString("%1").arg(data_lib->Get_Value(71));//水洗時(shí)間分鐘 uint32_t hmus,min; uint32_t Total_time=MandatoryRinse.toInt(); if(Total_time >59) { MandatoryRinse.clear(); hmus = Total_time/60;//小時(shí) 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);//小時(shí) qDebug()<<m3<<m4<<"\n"<<m5<<m6<<"\n"<<hh<<mm<<endl; if((mm >=60)&&(mm <100))//分鐘不能大于60 大于增加一個(gè)小時(shí) { if(mm == 60)//小時(shí)加1 { m4 = QString("0"); m3 = QString("0"); } else//>60 { //小時(shí)加1 并且拼接出分鐘數(shù)值 if(( mm>=61) &&(mm<=69))//01-09 { m4 = QString("%1").arg(mm%60).at(0);//余數(shù)時(shí)5 m3 = QString("0"); } else { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); } } //小時(shí)計(jì)算和求值 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最大時(shí)59+59=118 { m4 = QString("%1").arg(mm%60).at(1); m3 = QString("%1").arg(mm%60).at(0); uint8_t rethh = mm/60;//轉(zhuǎn)化為小時(shí) //小時(shí)計(jì)算和求值 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); //小時(shí)計(jì)算和求值 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)); //小時(shí)計(jì)算和求值 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("結(jié)束時(shí)間 ").arg(h1).arg(h2).arg(m3).arg(m4));//總治療剩余時(shí)間 ui->label_Rinsestarttime->show(); ui->label_Rinseendime->show(); } else { //擴(kuò)展 } }
實(shí)現(xiàn)的效果
【5】總結(jié)
代碼實(shí)現(xiàn)沒問題,已經(jīng)調(diào)試和計(jì)算過,上面結(jié)束時(shí)間已經(jīng)修改過,但是我只教方法,也作為一個(gè)記錄,以后遇上直接調(diào)用即可,大家平時(shí)寫代碼也要養(yǎng)成這種習(xí)慣,我不信你什么都能記住,封裝好自己的庫(kù)工作壓力減輕一半。
到此這篇關(guān)于QT實(shí)現(xiàn)將兩個(gè)時(shí)間相加的算法[hh: mm + hh: mm]的示例代碼的文章就介紹到這了,更多相關(guān)QT時(shí)間相加內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(147.鏈表插入排序)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(147.鏈表插入排序),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++ 中封裝的含義和簡(jiǎn)單實(shí)現(xiàn)方式
這篇文章主要介紹了C++ 中封裝的含義和簡(jiǎn)單實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07C++實(shí)現(xiàn)FTP綜合應(yīng)用詳解
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)FTP綜合應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08C++超詳細(xì)講解隱藏私有屬性和方法的兩種實(shí)現(xiàn)方式
為了避免因?yàn)閷㈩悗?kù)中的私有成員開放給類的使用方而導(dǎo)致的軟件邏輯外泄,因此需要將對(duì)外代碼中的私有成員隱藏起來(lái),下面我們來(lái)了解一下隱藏私有屬性和方法的兩種實(shí)現(xiàn)方式2022-05-05C++類繼承之子類調(diào)用父類的構(gòu)造函數(shù)的實(shí)例詳解
這篇文章主要介紹了C++類繼承之子類調(diào)用父類的構(gòu)造函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過本文大家能夠掌握C++類繼承的相關(guān)知識(shí),需要的朋友可以參考下2017-09-09C++ OpenCV實(shí)現(xiàn)圖像修復(fù)功能
這篇文章主要介紹了通過C++ OpenCV中提供的inpaint API實(shí)現(xiàn)對(duì)有瑕疵的圖像進(jìn)行修復(fù),文中的方法講解詳細(xì),感興趣的同學(xué)可以跟隨小編一起學(xué)習(xí)一下2022-01-01