package processor import "log" // CalcNeededTime принимает начальное и конечное время записи, конвертирует временя из формата строки в формат // числа и возвращает час и минуту начала времени записи, час и минуту конца времени записи. func CalcNeededTime(startTime, endTime string) (startHour, startMinute, endHour, endMinute int) { // Расчет требуемого времени записи startHour, startMinute, err := partitionTime(startTime) if err != nil { log.Fatal("Ошибка конвертации: ", err) } endHour, endMinute, err = partitionTime(endTime) if err != nil { log.Fatal("Ошибка конвертации: ", err) } return startHour, startMinute, endHour, endMinute } // CalcEndMinuteFirstVideo вычисляет необходимость смены часа (переключение одного фрагмента видеозаписи // (которое длится 1 час) на другой фрагмент видеозаписи) и возвращает количество часов (требуемое количество фрагментов // видеозаписи), длительность минут (объект, отвечающий за показатель минут) каждого фрагмента для формирования итоговой // видеозаписи (кроме последнего видеофрагмента, при условии durationHour > 0 (третий объект, возвращаемый функцией // calcEndMinuteFirstVideo). // // В случае, если необходимо взять полный фрагмент видеофайла, например с 00-00 до 03-00, значениеdurationHour будет // // снижено на 1 и возвращено. func CalcEndMinuteFirstVideo(durationHour, endMinuteFirstVideo, startHour, endHour, endMinute int) ( durationHourCalc int, endMinuteFirstVideoCalc int) { durationHour = endHour - startHour if durationHour > 0 { endMinuteFirstVideo = 60 } else { endMinuteFirstVideo = endMinute } if endMinute == 0 && durationHour > 0 { durationHour -= 1 } return durationHour, endMinuteFirstVideo }