завершить мероприятие между 2 часами и исключая выходные - PullRequest
0 голосов
/ 28 февраля 2020

Я работаю над приложением для планирования на 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). Мы должны предложить начало и конец пользователю, чтобы уважать границы. Может кто-нибудь помочь пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...