diff options
Diffstat (limited to 'subtimes')
-rwxr-xr-x | subtimes | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/subtimes b/subtimes new file mode 100755 index 0000000..7eda175 --- /dev/null +++ b/subtimes @@ -0,0 +1,59 @@ +#!/bin/bash + +# subtimes t1 t2 +# -> "t1-t2" + +for i in {1..2} +do + inp=$(echo "${@:i:1}" | sed "s/^ *//" | sed "s/ *#.*$//") + p1=$(echo "$inp" | tr ":" " " | awk '{print $1}') + p2=$(echo "$inp" | tr ":" " " | awk '{print $2}') + p3=$(echo "$inp" | tr ":" " " | awk '{print $3}') + for j in {1..2} + do + if [ "$p3" == "" ] + then + p3=$p2 + p2=$p1 + p1="0" + fi + done + p4=$(echo $p3 | tr "." " " | awk '{print $2}') + while [ ${#p4} -lt 6 ] + do + p4=${p4}"0" + done + f[$i]=$(echo $p4 | sed "s/^0*//" | sed "s/^$/0/") + s[$i]=$(echo $p3 | tr "." " " | awk '{print $1}' | sed "s/^0*//" | sed "s/^$/0/") + m[$i]=$(echo $p2 | sed "s/^0*//" | sed "s/^$/0/") + h[$i]=$(echo $p1 | sed "s/^0*//" | sed "s/^$/0/") +done + +fd=$[${f[1]}-${f[2]}] +ut=0 +while [ $fd -lt 0 ] +do + ut=$[$ut+1] + fd=$[$fd+1000000] +done +while [ ${#fd} -lt 6 ] +do + fd="0"$fd +done +sd=$[${s[1]}-${s[2]}-$ut] +ut=0 +while [ $sd -lt 0 ] +do + ut=$[$ut+1] + sd=$[$sd+60] +done +md=$[${m[1]}-${m[2]}-$ut] +ut=0 +while [ $md -lt 0 ] +do + ut=$[$ut+1] + md=$[$md+60] +done +hd=$[${h[1]}-${h[2]}-$ut] + +echo $hd":"$md":"$sd"."$fd |