46 lines
2.3 KiB
Go
46 lines
2.3 KiB
Go
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
|
||
}
|