Я работаю над приложением для планирования на QML. Я пытаюсь написать функцию, которая позволяет рассчитать startTime и endTime события. Мое событие должно начинаться между startDayTime и endDayTime, например, с 9:00 до 15:00. Событие не должно заканчиваться и в выходные. EndTime должен соблюдать эти условия два. Я пытаюсь рассчитать время начала, чтобы иметь время начала и окончания для соблюдения часовых ограничений. Это моя программа:
QDateTime Planning::enDateCalculProcess(QDateTime &startTime, qint64 &time,qint64 &workTime,qint64 &iraTime,QTime &startDayTime, QTime &endDayTime)
{
qint64 remainingTimeInStartDate= startTime.time().secsTo(endDayTime);
if(time <= remainingTimeInStartDate){
startTime=startTime.addSecs(time);
return startTime.addSecs(iraTime);
}
else{
qint64 numOfDays= time/workTime;
qint64 remainingTime= time % workTime;
qDebug()<<numOfDays<<"//"<<remainingTime;
startTime=startTime.addDays(numOfDays);
if(remainingTime > startTime.time().secsTo(endDayTime)){
startTime=startTime.addDays(1);
startTime.setTime(startDayTime);
startTime=startTime.addSecs(remainingTime);
if(!isWeekDay(startTime)){
QDateTime nexStart=startTime.addDays(8 -startTime.date().dayOfWeek());
nexStart.setTime(startDayTime);
startTime=nexStart.addSecs(remainingTime);
}
}
else{
startTime=startTime.addSecs(remainingTime);
if(!isWeekDay(startTime)){
QDateTime nexStart=startTime.addDays(8 -startTime.date().dayOfWeek());
nexStart.setTime(startDayTime);
startTime=startTime.addSecs(remainingTime);
}
}
startTime=startTime.addSecs(remainingTime);
QDateTime endDate=startTime.addSecs(iraTime);
return endDate;
}
}
Я изначально рассчитал start и endTime, и в случае, если она не соответствует условиям, которые я вызываю этой функцией. Пользователь выбирает время начала, и мы рассчитываем конец, добавляя к нему время облучения (iraTime). Мы должны предложить начало и конец пользователю, чтобы уважать границы. Может кто-нибудь помочь пожалуйста?