source ~/lib/sh/include
require time_t_to_readable
time_delta ()
{
local -a time
local +i i
local +i delta
(($# == 2)) || {
echo "$FUNCNAME: needs two times in HH:MM or H:MM format"
return 1
}
for ((i = 1; i <= 2; i++)); do
time=$1
[[ $time =~ '([[:digit:]]{1,2}):([[:digit:]]{2})' ]]
time[i]=$((${BASH_REMATCH[1]#0} * 60
+ ${BASH_REMATCH[2]#0}))
shift
done
if ((time[1] > time[2])); then
delta=$((time[1] - time[2]))
else
delta=$((time[2] - time[1]))
fi
((delta *= 60))
fsetvar delta time_t_to_readable $delta
freturn $delta
}