46 lines
2.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}