// // Created by ps on 18-9-30. // #include #include using namespace std; typedef struct { int Year; int Month; int Day; int Hour; int Minute; int Second; } TimeSt, *pTimeSt; void DownLoad(QDateTime startTime, QDateTime endTime) { cout << __FUNCTION__ << " " << startTime.toString("yyyy-MM-dd hh:mm:ss").toStdString() << endl; cout << __FUNCTION__ << " " << endTime.toString("yyyy-MM-dd hh:mm:ss").toStdString() << endl; cout << "\n\n\n" << endl; } void testFunc(QDateTime startTime, QDateTime endTime); void testFunc(QDateTime startTime, QDateTime endTime) { int loop = 0; QDateTime tmp_EndTime = startTime.addSecs(1 * 60 * 15); if (tmp_EndTime < endTime) { DownLoad(startTime, tmp_EndTime); testFunc(tmp_EndTime, endTime); } else { DownLoad(startTime, endTime); return; } } int main() { QDateTime startTime = QDateTime::fromString("2018-10-08 13:03:07", "yyyy-MM-dd hh:mm:ss"); // QDateTime startTime = QDateTime::currentDateTime();//即将下载的文件的开始时间 QDateTime endTime;//记录更新时间 int nDuration = 2; endTime = startTime.addSecs(nDuration * 60 * 59); cout << __LINE__ << " " << startTime.toString("yyyy-MM-dd hh:mm:ss").toStdString() << endl; cout << __LINE__ << " " << endTime.toString("yyyy-MM-dd hh:mm:ss").toStdString() << endl; //task_time Start TimeSt stTimeSt; stTimeSt.Year = startTime.date().year(); stTimeSt.Month = startTime.date().month(); stTimeSt.Day = startTime.date().day(); stTimeSt.Hour = startTime.time().hour(); stTimeSt.Minute = startTime.time().minute(); stTimeSt.Second = startTime.time().second(); char ch_StringStartTime[128]; sprintf(ch_StringStartTime, "%04d-%02d-%02d %02d:%02d:%02d", stTimeSt.Year, stTimeSt.Month, stTimeSt.Day, stTimeSt.Hour, stTimeSt.Minute, stTimeSt.Second); string str_StringStartTime(ch_StringStartTime); // string str_StringStartTime( // to_string(stTimeSt.Year) + "-" + to_string(stTimeSt.Month) + "-" + to_string(stTimeSt.Day) + " " // + to_string(stTimeSt.Hour) + ":" + to_string(stTimeSt.Minute) + ":" + // to_string(stTimeSt.Second)); cout << "str_____" << str_StringStartTime << endl; QDateTime taskStartTime = QDateTime::fromString(QString::fromStdString(str_StringStartTime), "yyyy-MM-dd hh:mm:ss"); cout << taskStartTime.toString("yyyy-MM-dd hh:mm:ss").toStdString() << endl; //task_time Start ------------------------------------------------- //task_time end TimeSt endTimeSt; endTimeSt.Year = endTime.date().year(); endTimeSt.Month = endTime.date().month(); endTimeSt.Day = endTime.date().day(); endTimeSt.Hour = endTime.time().hour(); endTimeSt.Minute = endTime.time().minute(); endTimeSt.Second = endTime.time().second(); char ch_StringEndTime[128]; sprintf(ch_StringEndTime, "%04d-%02d-%02d %02d:%02d:%02d", endTimeSt.Year, endTimeSt.Month, endTimeSt.Day, endTimeSt.Hour, endTimeSt.Minute, endTimeSt.Second); string str_StringEndTime(ch_StringEndTime); // string str_StringEndTime( // to_string(endTimeSt.Year) + "-" + to_string(endTimeSt.Month) + "-" + to_string(endTimeSt.Day) + " " // + to_string(endTimeSt.Hour) + ":" + to_string(endTimeSt.Minute) + ":" + // to_string(endTimeSt.Second)); cout << "str_____" << str_StringEndTime << endl; QDateTime taskEndTime = QDateTime::fromString(QString::fromStdString(str_StringEndTime), "yyyy-MM-dd hh:mm:ss"); cout << taskEndTime.toString("yyyy-MM-dd hh:mm:ss").toStdString() << endl; //task_time end ------------------------------------------------- cout << "\n\n\n" << endl; testFunc(taskStartTime, taskEndTime); return 0; }