1.1 提炼函数

【1】源代码

把一个unsigned long long型数值格式转换为时间格式。

 1 QString formatULLToTime(quint64 value)
 2 {
 3     quint64 hour = (value / 1000) / 3600;
 4     QString strHour = (hour < 10) ? QString("0%1").arg(hour) : QString::number(hour);
 5     quint64 min = ((value / 1000) % 3600) / 60;
 6     QString strMin = (min < 10) ? QString("0%1").arg(min) : QString::number(min);
 7     quint64 sec = (value / 1000) % 60;
 8     QString strSec = (sec < 10) ? QString("0%1").arg(sec) : QString::number(sec);
 9     return QString("%1:%2:%3").arg(strHour).arg(strMin).arg(strSec);
10 }

【2】提炼函数

 1 QString formatNumberToTime(quint64 nValue)
 2 {
 3     return (nValue < 10) ? QString("0%1").arg(nValue) : QString::number(nValue);
 4 }
 5 
 6 QString formatULLToTime(quint64 value)
 7 {
 8     return QString("%1:%2:%3")
 9             .arg(formatNumberToTime((value / 1000) / 3600))
10             .arg(formatNumberToTime(((value / 1000) % 3600) / 60))
11             .arg(formatNumberToTime((value / 1000) % 60));
12 }

【3】编译测试

 1 #include <QCoreApplication>
 2 #include <QDebug>
 3 #include <QString>
 4 
 5 QString formatNumberToTime(quint64 nValue)
 6 {
 7     return (nValue < 10) ? QString("0%1").arg(nValue) : QString::number(nValue);
 8 }
 9 
10 QString formatULLToTime(quint64 value)
11 {
12     return QString("%1:%2:%3")
13             .arg(formatNumberToTime((value / 1000) / 3600))
14             .arg(formatNumberToTime(((value / 1000) % 3600) / 60))
15             .arg(formatNumberToTime((value / 1000) % 60));
16 }
17 
18 int main(int argc, char *argv[])
19 {
20     QCoreApplication a(argc, argv);
21 
22     unsigned long long tempValue = 36003599000;
23     QString strTime = formatULLToTime(tempValue);
24     qDebug() << strTime << endl; // 10000:59:59
25 
26     return a.exec();
27 }

 【4】总结

有一段代码可以被组织在一起并独立出来,将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。

 

Good Good Study, Day Day Up.

顺序 选择 循环 总结

原文地址:https://www.cnblogs.com/Braveliu/p/7339048.html