У меня есть массив ${timearray[*]}
, содержащие несколько раз в этом форматеИзменения элементов в массиве Баша
20:56 20:57 20:59 21:01 21:04
Там является вторым массивом ${productarray[*]}
, который содержит разные времена
20:54 20:56 20:58 21:00 21:02
мне нужно, чтобы получить разница между ними путем вычитания времени минус продукта. Для этого я считаю, что мне нужно преобразовать эти времена в эпоху до вычитания, затем я делюсь на 60 и округлю до ближайшей минуты. Я попытался использовать цикл for, подобный этому, для преобразования.
arraylength=`expr ${#timearray[@]} -1`
for ((l=0; l<=$arraylength; l++))
do
epochtimearray=(`date --date="${timearray[$l]}" +%s`)
done
Однако полученный epochtimearray содержит только значение эпохи последнего времени
echo ${epochtimearray[*]}
1472331840
Кто-нибудь узнать, что я здесь отсутствует или есть лучший способ вычесть раз время.
Я действительно не понимаю, почему вам нужно использовать эпоху, если у вас всего лишь часы + минуты (которые относятся к одному и тому же дню или они неполны) –
Я считаю, что это приведет к ошибочному результату, когда элемент timearray перевернулся на 00:00, а соответствующий элемент productarray все еще находится в 23:59. – thatsboot3101