Убедитесь, что начало и конец события соответствуют временному интервалу, зная продолжительность этого события. - PullRequest
0 голосов
/ 02 марта 2020

Учитывая длительность события, я хочу вернуть время начала и окончания, которые позволяют мне начинать и заканчивать событие между 2 часами. Например, предположим, что мое мероприятие началось 03.02.20 в 03:12 с продолжительностью 890280 с. Это должно закончиться 12/03/2020 23:48. Я хочу настроить конец так, чтобы и startTime, и endTime были, скажем, между 9:00 и 03:00.

Может кто-нибудь помочь, пожалуйста? Это то, что я сделал, но это не работает:

 QDateTime Planning::calculateEndDate(QDateTime &startDateTime, qint64 duration)
{
    QDateTime endDateTime;
    QTime dayStart=QTime::fromString(startHour(),"hh:mm");
    QTime dayEnd=QTime::fromString(endHour(),"hh:mm");
    qint64 workTimePerDay=dayStart.secsTo(dayEnd);
    if(duration <= startDateTime.time().secsTo(dayEnd)){
        endDateTime=startDateTime.addSecs(duration);
        return endDateTime;
    }
    else{
        endDateTime=startDateTime.addSecs(duration);
        if(isonWorkTime(endDateTime) && isWeekDay(endDateTime)){
            return endDateTime;
        }
        else if(!isonWorkTime(endDateTime) && isWeekDay(endDateTime)){

        }


    }

}

Я рассчитываю рабочее время в день. Если оно уступает оставшемуся времени в workDay, мы добавляем его. Если нет, мы рассчитаем, добавив продолжительность. Если endDate находится в workDays и не в выходные, у нас хороший результат. Если нет, я не знаю, что нужно сделать, чтобы сдвинуть начало, чтобы иметь начало и конец рабочего времени.

...